Я решал такую же задачу (после завершения вывода в файл или каталог, нужно было переместить это в другое место, плюс сделать некоторые изменения), следующим образом:
1. В памяти строил дерево каталогов и файлов с информацией о размере, дате модификации и т.п.
2. Раз в какое-то время (указывалось в настройках) апдейтил эту информацию
3. Если небыло изменений в течении какого-то времени, считал что файл закрыт и делал необходимые действия
Прога работает уже более года, с полной нагрузкой 24х7х365, нареканий от заказчика небыло.
G6>1. В памяти строил дерево каталогов и файлов с информацией о размере, дате модификации и т.п. G6>2. Раз в какое-то время (указывалось в настройках) апдейтил эту информацию G6>3. Если небыло изменений в течении какого-то времени, считал что файл закрыт и делал необходимые действия G6>Прога работает уже более года, с полной нагрузкой 24х7х365, нареканий от заказчика небыло.
а такая ситуация, CuteFtp мог элементарно не достучаться час-сутки (больше чем в настройках короче) до сайта и таким образом не докачать файл — изменений не будет, однако файл по идее еще в работе?
все равно по хорошему его дернуть на exclusive open не помешает, ИМХО
... << RSDN@Home 1.0 beta 6a >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
V>а такая ситуация, CuteFtp мог элементарно не достучаться час-сутки (больше чем в настройках короче) до сайта и таким образом не докачать файл — изменений не будет, однако файл по идее еще в работе?
дело сейчас уже не cuteftp, а в принципе
V>все равно по хорошему его дернуть на exclusive open не помешает, ИМХО
так и делаю, но почему-то загрузка проца в процессе попытки открытия файла вы растает до 40%
Здравствуйте, gwg-605, Вы писали:
G6>Я решал такую же задачу (после завершения вывода в файл или каталог, нужно было переместить это в другое место, плюс сделать некоторые изменения), следующим образом: G6>1. В памяти строил дерево каталогов и файлов с информацией о размере, дате модификации и т.п. G6>2. Раз в какое-то время (указывалось в настройках) апдейтил эту информацию G6>3. Если небыло изменений в течении какого-то времени, считал что файл закрыт и делал необходимые действия
как бы не совсем спортивно изначальный вопрос стоял так — можно ли получать нотификацию не только о создании файла но и о его закрытии (окончании записи в него)... а все остальное — лишь частности
V>>все равно по хорошему его дернуть на exclusive open не помешает, ИМХО E>так и делаю, но почему-то загрузка проца в процессе попытки открытия файла вы растает до 40%
операция потому чо довольно тяжелая, особенно если Вы выполняете ее по отношению к сетевому ресурсу
во-вторых, небыстрая, если Вы удете делать это из основного потока, да на несколько файлов в цикле, GUI замерзнет... думаю стоит поток этот у Вас сделать с приоритетом чуть пониже обычного, все равно не к спеху?
... << RSDN@Home 1.0 beta 6a >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Тоже наткнулся как раз на эту проблемку . Насколько я понял нотификаци о закрытии файла — конца записи (в сетевом ресурсе) нет.
Очень жаль. У меня еще наблядается такая интересная вещь :
Если функцию RedaDirectoryChangesW ставить с флагами
FILE_NOTIFY_CHANGE_LAST_WRITE|
FILE_NOTIFY_CHANGE_FILE_NAME|
FILE_NOTIFY_CHANGE_CREATION,
то ,если файла не было ранее и он начал записываться приходит сообщение о создании сразу же по началу записи ,А во время записи
с интервалом где то 1-1.5 с призодят сообщения MODIFIED до самого окончания записи
НО если файл уже был (пускай хоть 0 Байт) и он начинает дописываться сколь угодно много , то MODIFIED приходит уже только 1 раз!
Именно по окончанию записи . Вот немогу догнать как это использовать и оформить А ведьь чувствую что можно
Здравствуйте, MaxiMal_TSG, Вы писали:
MM_>Тоже наткнулся как раз на эту проблемку . Насколько я понял нотификаци о закрытии файла — конца записи (в сетевом ресурсе) нет. MM_>Очень жаль. У меня еще наблядается такая интересная вещь : MM_>Если функцию RedaDirectoryChangesW ставить с флагами MM_>FILE_NOTIFY_CHANGE_LAST_WRITE| MM_>FILE_NOTIFY_CHANGE_FILE_NAME| MM_>FILE_NOTIFY_CHANGE_CREATION, MM_>то ,если файла не было ранее и он начал записываться приходит сообщение о создании сразу же по началу записи ,А во время записи MM_>с интервалом где то 1-1.5 с призодят сообщения MODIFIED до самого окончания записи MM_>НО если файл уже был (пускай хоть 0 Байт) и он начинает дописываться сколь угодно много , то MODIFIED приходит уже только 1 раз! MM_>Именно по окончанию записи . Вот немогу догнать как это использовать и оформить А ведьь чувствую что можно
Может, попробовать переподписаться на изменения при появлении нового файла (пусть и нулевой длины)?