У меня есть приложение, которое опрашивает каталог для вновь добавленных файлов и обрабатывает любые новые. Это приложение на C # (.NET 4), работающее в Windows 7, и каталог фактически является сетевым ресурсом.
Проблема заключается в том, что при выполнении итерации файлов для проверки их существования приложение иногда завершает работу без исключения. (Я использую try-catch, и там нет неуправляемого кода, кода делегирования или чего-то ненормального. Это простое приложение)
Код итерации выглядит так:
System.IO.DirectoryInfo dp = new System.IO.DirectoryInfo(destinationPath);
System.IO.FileSystemInfo[] destinationFiles = dp.GetFileSystemInfos();
foreach (FileSystemInfo fileSysInfo in destinationFiles)
{
string filePath = fileSysInfo.FullName;
if (filePath.EndsWith(FILE_VALID_EXT) && !Directory.Exists(filePath) && !File.Exists(filePath + FILE_PROCESSED_EXT))
{
// Do processing. It doesn't reach this point! I know because I have a logging statement.
}
}
Сбой кода, поскольку удаленный каталог (временно) недоступен? Или потому что есть какая-то блокировка для файла или каталога?
Как мне этого избежать? Возможно, есть более безопасный способ использования API ввода-вывода в C # File.
Любые советы приветствуются!