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

Вниз

Доступ к файлу   Найти похожие ветки 

 
Onix1970 ©   (2005-04-22 10:29) [0]

Доброго времени суток уважаемые. Подскажите пожалуйста как узнать занят ли файл каким либо другим процессом или нет?


 
Fay ©   (2005-04-22 11:26) [1]

CreateFile("c:\boot,ini", 0, 0, nil, OPEN_EXISTING, 0, 0)


 
onix1970 ©   (2005-04-22 11:36) [2]

Не совсем то. Файл уже есть и он допустим занят блокнотом или другой программой. Моя прога тоже пытается получить доступ к файлу, чтобы дописать в него. Я так думаю произойдет ошибка. Каким образом отловить и обработать это исключение ?


 
Fay ©   (2005-04-22 11:38) [3]

[1] + F1


 
Alexander Panov ©   (2005-04-22 12:05) [4]

onix1970 ©   (22.04.05 11:36) [2]
Файл уже есть и он допустим занят блокнотом или другой программой.


Блокнот/Notepad никогда не захватывает файл, как, впрочем, и многие другие программы.
Файл захватывается на короткое время для загрузки в память и закрывается.


 
onix1970 ©   (2005-04-22 12:33) [5]

Моя прога каждые 10 мин. сканирует БД на предмет изменения. Если есть, то дописывает в файл эти изменения. Есть другая прога (не моя), которая следит не подключился ли клиент по модему. Как только происходит подключение, то эта прога начинает передавать этот файл. Вот в связи с этим и возник вопрос. Ведь запросто они могут в одно и тоже время "захотеть" получить доступ к файлу. Мне нужно узнать, если файл заняла прога для передачи, то погодить с обновлением.


 
Юрий Зотов ©   (2005-04-22 12:34) [6]

> onix1970 ©   (22.04.05 11:36) [2]

См. [1] и [3]. Там все верно.


 
xShadow ©   (2005-04-22 12:45) [7]

{$HINTS OFF}
Function CheckRW( const FileName: String ): Boolean;
var F : File;
   FM: Integer;
Begin
   FM := FileMode;
   FileMode := 2;
   AssignFile( F, FileName );
   {$I-}ReSet( F, 1 );{$I+}
   Result := IOResult = 0;
   if not Result then
   Begin
      FileMode := FM;
      Exit;
   end;
   {$I-}CloseFile( F );{$I+}
   Result := IOResult = 0;
   FileMode := FM;
end;
{$HINTS ON}


Работала сия конструкция ещё в паскале


 
Alexander Panov ©   (2005-04-22 13:15) [8]

onix1970 ©   (22.04.05 12:33) [5]

В таком случае проблема решается просто - делай попытку захватить файл в исключительной использование. Если возникает ошиба доступа - файл занят.


 
onix1970 ©   (2005-04-22 15:35) [9]

Всем большое спасибо. Разобрался



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

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

Наверх




Память: 0.48 MB
Время: 0.024 c
14-1117034584
тихий вовочка
2005-05-25 19:23
2005.06.14
Странное поведение моей программы


4-1113980046
dimasih
2005-04-20 10:54
2005.06.14
Знатокам TService in a Delphi 5.0


3-1115113838
kyn66
2005-05-03 13:50
2005.06.14
Как закрыть базу Access (mdb) ?


1-1116939853
Андрюха7
2005-05-24 17:04
2005.06.14
Доступ на Delphi к значению функции - массиву записей


4-1114027177
Ibrox
2005-04-20 23:59
2005.06.14
Создание дополнительного потока