Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.01.08;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.009 c
2-1135076341
Andron.Ru
2005-12-20 13:59
2006.01.08
помогите с Файлами!


4-1130855969
jeka_t
2005-11-01 17:39
2006.01.08
Можно ли PRN-файлы (бинарный файл) показать в PreviewPrinter?


14-1134438087
fester
2005-12-13 04:41
2006.01.08
ТАУ


8-1122974855
апельсин
2005-08-02 13:27
2006.01.08
дата создания jpeg файла


14-1134504557
alex-drob
2005-12-13 23:09
2006.01.08
Как воспользоваться функцией





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский