2015-09-21 1 views
-1

Мы используем IIS для нашего ftp-сервера, и я бы хотел написать либо службу aC# windows, либо обработчик/модуль HTTP, которые знали бы, что файл был ftp'd в папку, чтобы я мог их переместить в другую папку, а также обновление базы данных.Как узнать, что файл был ftp'd в IIS?

Мое беспокойство в том, что если я не знаю, завершил ли файл FTP (ing) в папку, то, если я попытаюсь что-то с этим сделать, я бы получил ошибку доступа к файлу.

ответ

1

Это уже ответило на этом вопросе Does IIS FTP include an API to detect when a file upload completes?

По сути вы можете использовать пользовательский поставщик протоколирования.

+0

Спасибо, это будет работать отлично. –

+0

Это должно быть отмечено как обман. –

1

Вы можете создать FileSystemWatcher в папке просмотра событий создания файлов.

Однако, как вы отметили, вы должны быть обеспокоены тем, что файл находится в полете. Чтобы справиться с этим, вы можете использовать FileSystemWatcher, чтобы вставить имя файла в процессор, который следит/ждет, когда файл станет закрытым. Вот немного хакерский способ проверить, закрыт ли файл: Is there a way to check if a file is in use?.

Подложки нижнего уровня, но это заставляет вас войти в дверь. У FileSystemWatcher есть проблемы - он легко перегружен - поэтому, если это «загруженная» папка, вы можете реализовать свой собственный опрос и сравнить, а не полагаться на него.

Смежные вопросы