Форум: "WinAPI";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];
ВнизКак проверить занят ли файл или нет? Найти похожие ветки
← →
Jack (2003-08-11 14:52) [0]Монитор каталогов должн при появлении файлов передовать их на обработку. Но при использовании функций FindFirstChangeNotification/FindNextChangeNotification невозможно определить событие, когда файл полностью скопирован в директорию. Как можно решить эту проблему?
← →
panov (2003-08-11 15:06) [1]FILE_NOTIFY_CHANGE_LAST_WRITE
Any change to the last write-time of files in the watched directory or subtree causes a change notification wait operation to return. The operating system detects a change to the last write-time only when the file is written to the disk. For operating systems that use extensive caching, detection occurs only when the cache is sufficiently flushed.
Пробовал?
← →
Jack (2003-08-11 15:55) [2]Не правильно описал ситуацию. В директорию может копироваться несколько файлов одновременно и из разных источников. GhangeNotification не возвращает имени файла - источника события. Поэтому просматриваю каталог с помощью FindFirst/FindNext и получаю список файлов, среди которых есть еще открытые. Как открытые файлы можно исключить из списка?
← →
panov (2003-08-11 16:32) [3]К сожалению, таким способом не сможешь определит завершение записи файла.
Попробуй воспользоваться ReadDirectoryChangesW, но только в ОС не ниже WinNT...
← →
panov (2003-08-11 16:36) [4]Можно пытаться открывать файл для проверки в эксклюзивном режиме, но это не 100% метод.
← →
Jack (2003-08-11 16:52) [5]В том то и дело... Программа будет работать, вероятнее всего, под Win98.
Ну чтож, будем пробовать...
← →
Verg (2003-08-12 08:56) [6]Сначала файл должен быть ненулевой длины, а затем
попытка переименовать файл самого в себя:
if renamefile(fname, fname) then файл записан полностью else нет.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.10.16;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c