Форум: "WinAPI";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
ВнизДоступ к файлу Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.043 c