Как ждать, пока каталоги, содержащие файлы, будут рекурсивно удалены в C # - PullRequest
0 голосов
/ 15 июня 2019

Я удаляю пару папок, которые содержат много файлов. Затем я снова создаю эти папки. Теперь проблема в том, что каталогу иногда требуется время для удаления.

Но перед тем, как создать каталог, я проверяю, существует каталог или нет. Таким образом, проблема здесь заключается в том, что он уже существует и больше не создает каталог.

if (Directory.Exists(path))
            {

                Directory.Delete(path, true);
            }
 if (!Directory.Exists(path))
            {

                dir = Directory.CreateDirectory(path);
                dir.Attributes = FileAttributes.Directory | FileAttributes.Hidden;
            }

1 Ответ

1 голос
/ 15 июня 2019

Я бы использовал Filewatcher.Смотрите здесь: [https://www.infoworld.com/article/3185447/how-to-work-with-filesystemwatcher-in-c.html]

Код из их статьи, но измененный на ваш вопрос:

using System;
using System.IO;

namespace FileWatcherExample
{
    class Program
    {
        static void Main(string[] args)
        {
            string path = @"c:\example";
            MonitorDirectory(path);
            Console.ReadKey();
        }

        private static void MonitorDirectory(string path)
        {
            FileSystemWatcher fileSystemWatcher = new FileSystemWatcher();
            fileSystemWatcher.Path = path;
            fileSystemWatcher.Deleted += (o,s) => Console.WriteLine("File deleted: {0}", e.Name);
            fileSystemWatcher.EnableRaisingEvents = true;
        }
    }
}

Наблюдатель файлов позволяет создавать, изменять и удалять события, позволяя вам навсегда получитьобновления в реальном времени изменений в папке или файле.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...