Форум программистов, компьютерный форум, киберфорум
Lazarus
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
7 / 1 / 1
Регистрация: 18.04.2015
Сообщений: 17
1

Как проверить, освободился ли файл, который был открыт для дозаписи?

05.10.2017, 16:16. Показов 806. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Видел тему, как проверить, открыт ли файл кем-то еще.
У меня файл открыт другой программой, а она может закрыть его через 2 минуты, а может через полчаса. Нужно программно узнать, когда программа файл "отпустила", чтобы сразу открыть его и дописать туда свои данные.
Понятно, что можно проверить, освободился ли файл, с помощью таймера, который будет раз в секунду-две-три проверять, открыт он или нет.
Вопрос: есть ли способ эффективнее?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.10.2017, 16:16
Ответы с готовыми решениями:

Как проверить, был ли открыт рекордсет в АДО, или он еще не открыт?
Народ! Помогите по сабжу

Как узнать путь файла, который был открыт своей программой
Сразу извиняюсь, если эта тема уже была. У меня есть программа, которая играет (воспроизводит)...

Как очистить файл который открыт для записи без пересоздания
Добрый день! Подскажите, пожалуйста,как очистить файл который у меня открыт для записи?Вариант...

Как получить путь к файлу, который был открыт с помощью моей программы
Как получить путь к файлу, который был открыт с помощью моей программы? Например я открыл картинку...

3
272 / 176 / 30
Регистрация: 16.03.2017
Сообщений: 1,631
05.10.2017, 17:16 2
Цитата Сообщение от Roman-65 Посмотреть сообщение
Понятно, что можно проверить, освободился ли файл, с помощью таймера, который будет раз в секунду-две-три проверять, открыт он или нет.
я думаю это самый эффективный способ! Конечно можно попробовать разобраться в WinAPI(кажется можно зарегистрировать "реактор" на "изменение файла/папки"), но теряется мультиОСность и нет гарантии что в следующих версиях Windows будет поддержка этой фукнции... (лично я столкнулся с тем что при переходе с Win7 на Win8/Win10 сменилось API работы с RichEdit - программа работающая на старой винде молча перестала обрабатывать раскраску текста)
1
Эксперт .NET
11071 / 6988 / 1571
Регистрация: 25.05.2015
Сообщений: 21,078
Записей в блоге: 14
06.10.2017, 17:08 3
Цитата Сообщение от Roman-65 Посмотреть сообщение
Вопрос: есть ли способ эффективнее?
Сетевые (многопользовательские) базы данных.

Похуже: Файл один, но данные в него передаются через программу-сервер, когда принимает данные от клиентов и без проблем складирует данные в файл, доступный на запись только ей.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32959 / 21276 / 8169
Регистрация: 22.10.2011
Сообщений: 36,546
Записей в блоге: 8
06.10.2017, 17:13 4
Rius, это все возможно только в том случае, когда у ТС-а есть возможность корректировки "другой" программы. Если это чужое приложение, исходников которого нет - тут ничего кроме постоянного опроса состояния не сделаешь (в пределах разумного. Вешать событие на изменение состояние файла - неразумно в данном случае)
2
06.10.2017, 17:13
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.10.2017, 17:13
Помогаю со студенческими работами здесь

Как сохранить текстовый файл в то же место откуда он был открыт без вызова SaveFileDialog?
Как бы просто обновить фаил data.txt (при нажатии на кнопку save из dataGridView сразу сохранялись...

Как проверить открыт ли файл?
Нужно записать строку в текстовый файл, AssignFile(f, ...); Append(f); Writeln(f,...); ......

Как проверить открыт ли файл или нет?
Здравствуйте! Ребята подскажите по такому вопросу! У меня есть файл с расширением csv, так...

Ошибка Файл не может быть открыт ядром базы данных microsoft jet. Файл уже открыт другим пользователем для монопольного доступа или
После написания программы, записал исходник на диск. При запуске экзешника с диска появляется такая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru