Как обновить System.IO.DirectoryInfo.GetFiles (). Длина - PullRequest
2 голосов
/ 09 декабря 2010

У меня проблемы с получением обновленного количества файлов в каталоге.Файлы печатаются из PDFCreator и отправляются в эту папку.Когда количество файлов в папке совпадает с количеством печатаемых файлов, оно должно прерваться и продолжить работу с моим кодом.Проблема в том, что счетчик не обновляется, и я не знаю, как его обновить.Это мой код:

System.IO.DirectoryInfo pdf = new System.IO.DirectoryInfo(@"C:\0TeklaBatchProcess\pdf");
int count = pdf.GetFiles().Length;

while (count != DE.GetSize())
{
    if (count < DE.GetSize())
    {
        pdf.Refresh();
    }
    else
    {
        break;
    }
}

Если кто-нибудь подскажет, как обновить или обновить количество файлов, я буду очень признателен.

1 Ответ

5 голосов
/ 09 декабря 2010

count - это локальный int - единственный способ обновления, который заключается в повторном запросе. Попробуйте заменить pdf.Refresh() на:

count = pdf.GetFiles().Length;

(на самом деле, Directory.GetFiles(di.FullName).Length, вероятно, дешевле)

Тем не менее! Вы не хотите сделать это в тесном цикле; возможно добавьте Sleep(1000) или (лучше) используйте FileSystemWatcher. Еще лучше еще; проверьте наличие определенного файла, чтобы не нажимать GetFiles() агрессивно.

...