Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.08;
Скачать: CL | DM;

Вниз

проверка - открыт ли файл другим приложением   Найти похожие ветки 

 
stud ©   (2005-12-19 17:02) [0]

народ, подскажите как проверить открыт ли файл любой другой программой
я использую функцию Openfile/
f_handle:=openfile(pchar(source+"\"+sr.name),buffer,OF_SHARE_EXCLUSIVE);
if (f_handle>0) then
если я с помощью нее открываю файл - то другим программам отказано в доступе.
но если другая программа открыла этот же файл раньше меня - то я все равно могу открыть этот файл.


 
programania ©   (2005-12-19 21:26) [1]

А если
OF_READWRITE+OF_SHARE_EXCLUSIVE


 
fast2   (2005-12-20 14:53) [2]

Исспользуй функцию:
function UseFile(FilePath:string):boolean;
var HFileRes:HFILE;
begin
Result := False;
try
  if not FileExists(FilePath) then Exit;
  HFileRes := CreateFile(Pchar(FilePath),GENERIC_READ or GENERIC_WRITE,0,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
  Result  := (HFileRes = INVALID_HANDLE_VALUE);
  if not Result then CloseHandle(HFileRes)
finally
end;
end;

Возврат false - файл не занят. Функция написаная не мной - нарыл где-то на этом форуме. Спасибо автору!


 
Leonid Troyanovsky ©   (2005-12-20 15:47) [3]


> fast2   (20.12.05 14:53) [2]

> Возврат false - файл не занят.


И что это дает?
Сейчас не занят, а в следующий момент занят.
Т.е., не нужно никакой такой функции: нужен файл - открываем,
работаем (закрываем), если отлуп - изучаем причины.

--
Regards, LVT.


 
umbra ©   (2005-12-20 16:08) [4]

в общем случае - никак. если файл кто-то открыл эксклюзивно - тогда Вы его не откроете. НО если это текстовый файл - ничего не гарантируется. некоторые программы ставят лок на него, некоторые - нет.



Страницы: 1 вся ветка

Текущий архив: 2006.01.08;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
14-1134384980
Piter
2005-12-12 13:56
2006.01.08
Управление клиентом p2p сети Direct Connect (DC), UKC, DC++


2-1134909472
з. танька
2005-12-18 15:37
2006.01.08
выгрузить картинку из имаги


3-1130924618
Id
2005-11-02 12:43
2006.01.08
Проблема Соединение с базой


2-1135183601
Acrob@t
2005-12-21 19:46
2006.01.08
Как?


2-1135114470
Gena
2005-12-21 00:34
2006.01.08
Прошу помочь очень хочется из Delphi7 запустить мастера печати