Я пишу Службу Windows, которая должна взять файл из папки FTP на локальном компьютере и проанализировать данные в этом файле и нажать на внешний источник. Файл будет загружен в папку FTP в какой-то момент от какой-либо другой стороны, и я не могу предсказать, когда файл будет загружен. Мне нужна служба, чтобы иметь возможность сканировать FTP-папку и узнавать, когда файл был недавно загружен на сервер, и начать процесс синтаксического анализа.Как узнать, когда файл был недавно перезаписан внутри папки FTP?
Мне нужно знать, есть ли какой-нибудь способ в .NET, чтобы определить, когда файл был помещен в каталог.
Существует аналогичный вопрос в SO об этом here, но это было не в отношении написания службы Windows. Кроме того, решение, казалось, состояло в том, чтобы контролировать сам каталог, но я тестировал эту идею с использованием класса DirectoryInfo, и она не работает при просмотре свойства LastWriteTime. При копировании и замене файла в каталоге время каталога не изменяется.
Примечание: Я не могу полагаться на временные метки создания/изменения файла, поскольку я не знаю, как другая сторона генерирует эти файлы.
Спасибо AllenG, но как бы я разобрался, если файл полностью написан? Получил ли я это из класса FileInfo? – Joseph
То, как я делаю это, - это попытаться открыть файл с помощью FileSharing.None, чтобы проверить, все ли попытки ftp-транзакции записать в файл. Как только вы сможете открыть его таким образом, вам должно быть хорошо идти. Может быть, лучший способ, но если так, я не знаю. – AllenG