Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 37, средняя оценка - 4.84
Sasha
4918 / 2383 / 249
Регистрация: 05.06.2008
Сообщений: 7,465
Записей в блоге: 3
#1

Как проверить открыт ли файл или нет? - C++ Builder

28.10.2011, 16:11. Просмотров 5608. Ответов 13
Метки нет (Все метки)

Здравствуйте!

Ребята подскажите по такому вопросу!

У меня есть файл с расширением csv, так вот этот файл можно открыть различными программами.

Так вот вопрос можно ликак-нить проверить открыт ли файл или нет?

Заранее благодарен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.10.2011, 16:11
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как проверить открыт ли файл или нет? (C++ Builder):

Как можно проверить двигается мышка или нет? - C++ Builder
Как можно проверить двигается мышка или нет?

Как программно проверить, на машине действительно нет инета, или брандмауэр блокирует мою прогу? - C++ Builder
При запуске прога должна забрать с сервера файл. При невозможности сего - некое действие. Сабж.

Как мне сделать так, чтобы данный текстовый файл был открыт один раз при запуске программы и закрыт при закрытии программы? - C++ Builder
Привет! Возник следующий вопрос. Программа состоит из основного окна Form1 и нескольких Unit. По таймеру в Form1 запускается один из...

Куда спрятать файл от пользователя, или как запретить удалить файл - C++ Builder
Всем доброго времени суток. Кто может подсказать куда можно заныкать файл чтобы его не мог найти стандартный пользователь, или сделать так...

Спрятать файл от пользователя, или как запретить удалить файл - C++ Builder
Кто может подсказать куда можно спрятать файл чтобы его не мог найти стандартный пользователь, или сделать так что бы его нельзя было...

Как проверить txt-файл на пустоту? - C++ Builder
Как проверить пустой txt файл или нет?

13
LK
Заблокирован
28.10.2011, 17:01 #2
открыт одновоеменно ?
если он открыт в режиме эксклюзивного доступа, или вообще открыт, должно быть сообщение о невозможности открыть файл, или что он занят другим приложением, имхо
0
mimicria
return (true);
1960 / 1097 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
28.10.2011, 17:14 #3
Попробовать FileOpen, при невозможности открыть он вернёт -1
0
nick42
Практикантроп
4195 / 2228 / 218
Регистрация: 23.09.2011
Сообщений: 4,788
28.10.2011, 17:18 #4
Вот FileOpen даже с ключами OpenWrite спокойно открывает уже открытый в текстовом редакторе файл, возвращая всегда значение 276; так что этот случай не подходит... .
0
Sasha
4918 / 2383 / 249
Регистрация: 05.06.2008
Сообщений: 7,465
Записей в блоге: 3
28.10.2011, 18:56  [ТС] #5
Я его открываю и запускаю через функцию ShellExecute().
Цитата Сообщение от LK Посмотреть сообщение
или вообще открыт
открыт какой-либо программой
0
mimicria
return (true);
1960 / 1097 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
28.10.2011, 19:00 #6
А, в смысле файл открыт другой программой, но к нему есть доступ?
Тогда вариант 2 - получить все открытые файлы в системе
0
LK
Заблокирован
28.10.2011, 19:10 #7
Перехват вызовов API-функций
Перехват операций открытия, создания и удаления файлов
еще, говорят, можно
// Следующий цикл показывает, как можно получать сообщения о изменениях файловой системы:

var
ChangeHandle: THandle;
...

ChangeHandle:= FindFirstChangeNotification(PChar(Тут путь к коталогу),false, hNotifyFilter);

if ChangeHandle <> INVALID_HANDLE_VALUE then
while true do
begin
if WaitForSingleObject(ChangeHandle,500) = WAIT_OBJECT_0 then
begin
// Событие...
end;
FindNextChangeNotification(ChangeHandle);
end;
хотя... гиблое это дело, имхо, когда-то пробовал
0
mimicria
return (true);
1960 / 1097 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
29.10.2011, 08:06 #8
По моей ссылке выше есть кстати готовый
henum.rar (56 кб) Пример перечисления открытых файлов.
0
LK
Заблокирован
29.10.2011, 08:27 #9
henum.exe - способ хорош, только среди всего этого безобразия я единственного интересовавшего меня открытого файла rtf так и не нашел, хотя, как ни странно для меня самого, искал упорно , все сплошь одни абсолютно не гламурные mui да ui , прости Господи ...
0
mimicria
return (true);
1960 / 1097 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
29.10.2011, 08:50 #10
Странно, у меня работает. Открыл вордовский файл 1.docx
Как проверить открыт ли файл или нет?
0
LK
Заблокирован
29.10.2011, 18:44 #11
похоже, ему не известны нелатинские буковки
0
mimicria
return (true);
1960 / 1097 / 91
Регистрация: 19.04.2011
Сообщений: 2,345
30.10.2011, 05:00 #12
Цитата Сообщение от LK Посмотреть сообщение
похоже, ему не известны нелатинские буковки
Это видимо отсутствие русификации консоли. Хотя если сделать henum > test.txt, то вполне адекватно в файле находится \Lena\Автобиография.docx
0
LK
Заблокирован
30.10.2011, 05:39 #13
нема , видать, Вынь7 ему не по зубам.
0
Programmer.
Прогер
631 / 262 / 7
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
30.10.2011, 05:41 #14
Sasha,

А CreateMutexEx() не подоидёт?
0
30.10.2011, 05:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.10.2011, 05:41
Привет! Вот еще темы с ответами:

Как проверить файл уже сохранен - C++ Builder
Делаю текстовый редактор, сделал обработку закрытия программы int msgboxID = MessageBox( NULL, (LPCWSTR)L&quot;Save the file ?&quot;, ...

как проверить есть ли ini файл - C++ Builder
Создать програмку в которой при первом запуске еще нет ini файла с настроками.. при нажатии кнопки сроздавался ини и параметры заносились в...

Как определить активирована Caps Lock или нет? - C++ Builder
Доброго времени суток!!! Как определить активирована Caps Lock или нет? Заранее спасибо!!!

Как узнать прекратил поток работу или нет? - C++ Builder
Здравствуйте все! Можно ли как то узнать работает в данный момент функция Execute потока TThread или нет? Добавлено через 15 минут ...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru