Всем привет.
По лбу не бить за глупый вопрос

Написал Windows службу, которая мониторит папочку на FTP на наличие определенного файла. Если файл найден — посылается на обработку в другую программу. Мониторинг происходит раз в минуту.
Так вот вопрос. Если файл большой, то возможна такая ситуация, что служба нашла файл и передала его в программу, а он еще не до конца закачался на FTP. Файл zip, в голову приходит проверять архив на целостность, но как его блин проверишь, если он не на локальном компьютере?
Есть у кого идеи?
Здравствуйте, AlStorm, Вы писали:
AS>Всем привет.
AS>По лбу не бить за глупый вопрос
AS>Написал Windows службу, которая мониторит папочку на FTP на наличие определенного файла. Если файл найден — посылается на обработку в другую программу. Мониторинг происходит раз в минуту.
AS>Так вот вопрос. Если файл большой, то возможна такая ситуация, что служба нашла файл и передала его в программу, а он еще не до конца закачался на FTP. Файл zip, в голову приходит проверять архив на целостность, но как его блин проверишь, если он не на локальном компьютере?
AS>Есть у кого идеи?
А что, не хватило идеи использовать файловые атрибуты или файлы-флаги? Может как GetRight расширение менять? Или все это rocket science?
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, AlStorm, Вы писали:
AS>>Всем привет.
AS>>По лбу не бить за глупый вопрос
AS>>Написал Windows службу, которая мониторит папочку на FTP на наличие определенного файла. Если файл найден — посылается на обработку в другую программу. Мониторинг происходит раз в минуту.
AS>>Так вот вопрос. Если файл большой, то возможна такая ситуация, что служба нашла файл и передала его в программу, а он еще не до конца закачался на FTP. Файл zip, в голову приходит проверять архив на целостность, но как его блин проверишь, если он не на локальном компьютере?
AS>>Есть у кого идеи?
А>А что, не хватило идеи использовать файловые атрибуты или файлы-флаги? Может как GetRight расширение менять? Или все это rocket science?
Загружает на ФТП сторонняя программа, тут ничего сделать не могу... Пока есть идея отслеживания размера: если количество байт между двумя "замерами" с интервалом 5 секунд изменилось — то файл закачан. Но хочется более изящного решения
AS>Загружает на ФТП сторонняя программа, тут ничего сделать не могу... Пока есть идея отслеживания размера: если количество байт между двумя "замерами" с интервалом 5 секунд изменилось — то файл закачан. Но хочется более изящного решения
Пардон, если не изменилось
Здравствуйте, AlStorm, Вы писали:
AS>Загружает на ФТП сторонняя программа, тут ничего сделать не могу... Пока есть идея отслеживания размера: если количество байт между двумя "замерами" с интервалом 5 секунд изменилось — то файл закачан. Но хочется более изящного решения
А сторонняя программа не может после закачки переименовывать каким-то оговоренным образом файл? Если в названии есть нужные символы, значит — закачалось.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Здравствуйте, AlStorm, Вы писали:
AS>>>Написал Windows службу, которая мониторит папочку на FTP на наличие определенного файла. Если файл найден — посылается на обработку в другую программу. Мониторинг происходит раз в минуту.
AS>>>Так вот вопрос. Если файл большой, то возможна такая ситуация, что служба нашла файл и передала его в программу, а он еще не до конца закачался на FTP. Файл zip, в голову приходит проверять архив на целостность, но как его блин проверишь, если он не на локальном компьютере?
AS>>>Есть у кого идеи?
AS>…Пока есть идея отслеживания размера: если количество байт между двумя "замерами" с интервалом 5 секунд изменилось — то файл закачан. Но хочется более изящного решения
Можно проверять размер или дату последней модификации (MDTM) файла. Сравнивать дату с текущей, конечно же не стоит — она ведь будет серверная, но так же с небольшим периодом посмотреть не изменилась ли — хороший вариант, хотя и чудо-админы могут и время на сервере подкручивать
Если требуется работать с различными серверами, то тю: что SIZE, что MDTM — команды, которые сервер не обязан поддерживать. Можно хранить где-то список загруженных файлов и их размер. При проверке же проверять, загружен ли такой-то файл с таким-то размером.
Так же,
по слухам, некоторые FTP-сервера поддерживают команды вычисления хешей файлов. А FTP/SSL "has built-in integrity checking". Это тоже можно заиспользовать.