Ошибка "Отказано в доступе" при перемещении файлов и удалении директории

Harvertalex

Client
Регистрация
21.11.2018
Сообщения
34
Благодарностей
2
Баллы
8
C#:
// задаем общую папку для виртуальной машины
string vmDir = project.Directory + @"\resourses\temp\" + project.Variables["name_vd"].Value;
    if (!Directory.Exists(vmDir)) Directory.CreateDirectory(vmDir);
    
List <string> tempListFiles = new List <string>(); // Временный список не привязаный к файлу
string dir = project.Directory + @"\resourses\temp\";
string avatarImg = project.Directory + @"\resourses\img\avatars\";
string avatarUsed = project.Directory + @"\resourses\img\avatarsUsed\";
string img = project.Directory + @"\resourses\img\img\";
string imgUsed = project.Directory + @"\resourses\img\imgUsed\";
string avatar = Path.Combine(vmDir, "avatar");
if (!Directory.Exists(avatar)) Directory.CreateDirectory(avatar);
string content = Path.Combine(vmDir, "content");
if (!Directory.Exists(content)) Directory.CreateDirectory(content);

//Перемещаем пути к файлам в список аватарок
var dirFiles = Directory.GetFiles(avatarImg); // Путь к папке с файлами
lock (SyncObjects.ListSyncer)
{
    tempListFiles.Clear();
    foreach (string file in dirFiles)
    {
        tempListFiles.Add(file);
    }
}
//работаем с файлами
//аватарки
lock (SyncObjects.ListSyncer)
{
    for (int i = 1; i < 7; i++)
    {
        //Получаем рандомный путь к файлу
        int random = new Random().Next(tempListFiles.Count);
        string random_File = tempListFiles[random];
        string new_path = Path.Combine(avatar, Path.GetFileName(random_File));
        File.Copy(random_File, new_path, true);
//        string used_path = Path.Combine(avatarUsed, Path.GetFileName(random_File));
//        File.Move(random_File, used_path);
        File.Delete(random_File);
        tempListFiles.Remove(random_File);
        }
    }
Есть вот такой кусок кубика. Он берет название файлов из директории , кидает в список, потом берет рандомное количество этих файлов и перекидывает в нужную мне папку. После чего я бы хотел или удалить или переместить эти файлы в другую директорию из материнской. Но по отношению к некоторым файлам получаю ошибку:
Выполнение действия CSharp OwnCode: Работа с IMG. Отказано в доступе по пути "D:\Zenka\мои проекты\TelegramDoorwaysCreator\resourses\img\avatars\5811889.jpg".


какие разрешения или действия требуются дабы победить этот нюансик подскажите, пожалуйста,
 

Вложения

demien02613

Client
Регистрация
29.07.2021
Сообщения
23
Благодарностей
5
Баллы
3
если файл ни чем не лочится, то смотри атрибуты, файла/папки
если стоит R/O, то надо снимать.

сейчас как раз работаю над этим....
у меня папка имеет ReadOnly и не удаляется...

пока тестирую , проверяю таким образом:
C#:
string directory = project.Directory; //тут поставь свой путь
DirectoryInfo destin = new DirectoryInfo(directory);
string ss = destin.Attributes.ToString() ;

project.SendInfoToLog (ss);
чуть позже допишу измение атрибута
 
  • Спасибо
Реакции: djaga

Harvertalex

Client
Регистрация
21.11.2018
Сообщения
34
Благодарностей
2
Баллы
8
у меня не выдает почему-то другой инфы кроме как сообщения "Directory"
91319
 

demien02613

Client
Регистрация
29.07.2021
Сообщения
23
Благодарностей
5
Баллы
3
ну значит RO не стоит.... ищи кто лочит... ставь паузу после обращению к файлу...
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)