|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.12.2009, 15:47 | #1 |
Форумчанин
Регистрация: 08.07.2009
Сообщений: 246
|
Определение свободен файл или нет?
Добрый всем день. помогите пожалуйста.
Проблема в следующем мне нужно читать файлы которые формирует другая программа. Как узнать когда файл свободен, чтобы можно было его читать. Буду очень признателен за примеры. Заранее всем большое спасибо!!!
Да прибудет с Вами свет и радость!!!
|
02.12.2009, 15:56 | #2 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
проверить через FileOpen, если хэндл вернет -1, значит занят
зы: есть нюансик, например при формировании баз данных- архивов, размер файла может увеличиваться (т.е. не мгновенно), это нужно учитывать... как у вас вы не упомянули
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
02.12.2009, 16:07 | #3 |
Форумчанин
Регистрация: 08.07.2009
Сообщений: 246
|
Вы знаете мне подсказывал данный вариант Stilet но почему-то у меня все равно проскакивает он через этот контроль не свободный файл.
Даже делал чтобы программа выдавала второй файл с таким же именем но с другим расширением. Но почему-то все равно проблемы возникают. Сделал вариант с проверкой размера в цикле но тогда программа тормозит на мелких файлах.
Да прибудет с Вами свет и радость!!!
|
02.12.2009, 16:55 | #4 | ||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
||
02.12.2009, 17:18 | #5 |
Форумчанин
Регистрация: 08.07.2009
Сообщений: 246
|
Я отправляю команду программе в один файл и жду от нее ответа в другой файл. Программа написана сто лет назад еще под ДОС. Мне кажется что файл пишется потом ДОС там что-то мутит в этот момент делфи решает что файл свободен а ДОС начинает писать дальше.
Да прибудет с Вами свет и радость!!!
|
02.12.2009, 17:20 | #6 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
тогда пробуйте временные задержки после появления файла
зы: просто любопытно, не от микроМРВ случаем архивы?
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
03.12.2009, 15:57 | #7 |
Форумчанин
Регистрация: 08.07.2009
Сообщений: 246
|
Ну так я так и сделал. Измеряю размер жду потом снова мерею снова жду потом сравниваю три. Вот тут вся проблема на малых файлах я теряю время на ожидание.
Да прибудет с Вами свет и радость!!!
|
03.12.2009, 16:39 | #8 |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
есть еще способ, опробуйте... функция ReadDirectoryChangesW покажет какой файл "дергается" в заданной директории... алгоритм такой: сравниваете появление файла и его наличие в возвращаемом результате этой функции, если внешняя программа создающая архив все еще пишет в файл, то файл оставить в покое, если нет, то ваши действия... пример по ReadDirectoryChangesW есть на форуме.
зы: вам придется добавить исключение, чтобы не фиксировать свои же действия (просто проверяйте, если ваш exe, то сброс)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
03.12.2009, 17:21 | #9 |
Форумчанин
Регистрация: 08.07.2009
Сообщений: 246
|
Ну думаю тогда он все равно проскочит так как файл пишется рывками мне преходилось делать задержку до семи секунд.
Думаю это не вариант!!!
Да прибудет с Вами свет и радость!!!
|
03.12.2009, 17:23 | #10 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
StringGrid или нет?(С++) | Скарам | Помощь студентам | 7 | 19.09.2009 19:58 |
Совпадение или нет? | lastochka | Свободное общение | 14 | 10.01.2009 23:02 |
правильно или нет | FreeZZZ | Паскаль, Turbo Pascal, PascalABC.NET | 9 | 26.12.2008 09:39 |
Есть или нет | MAcK | SQL, базы данных | 3 | 27.05.2008 14:45 |
Лицензионное ПО или нет? | pures | Свободное общение | 1 | 02.12.2007 06:34 |