Форум: "WinAPI";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
ВнизДоступ Найти похожие ветки
← →
GanibalLector © (2004-08-25 18:42) [0]Подскажите каким образом можно узнать(и можно ли вообще) открыт ли файл другим процессом.Т.е. разрабатываю программу совместно с др.разработчиками и по тех.заданию необходимо не удалять файл до тех пор,пока все "читатели и писатели" )) этого файла не исчезнут.
Так вот,собственно, и вопрос...КАК ???
З.Ы. Пробовал Mode разные(fmShareExclusive и т.д.),но это все от Лукавого.
← →
GanibalLector © (2004-08-25 21:41) [1]Что,не знаете ??? Жаль,ОЧЕНЬ ЖАЛЬ...
← →
Digitman © (2004-08-26 09:57) [2]
> не удалять файл до тех пор,пока все "читатели и писатели"
> )) этого файла не исчезнут
а ты и не сможешь его (файл) удалить, пока он открыт кем-то ..
(кем и с каким доступом - неважно)
поэтому вся эта петрушка сводится к простейшему циклу
while not DeleteFile(..) do чего-нибудь полезное
← →
clickmaker © (2004-08-26 12:27) [3]
while (true) do begin
hFile := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0);
dwError := GetLastError;
if (hFile <> INVALID_HANDLE_VALUE) then
CloseHandle(hFile);
if (dwError <> ERROR_SHARING_VIOLATION) then
Break;
Sleep(2000);
end;
← →
GanibalLector © (2004-08-26 19:02) [4]Опс...и правда,если сделать так :
hFile:=CreateFile(
pChar(MyFaYlO),
GENERIC_READ or GENERIC_WRITE,
0,
nil,
OPEN_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
0);
sleep(10000);
CloseHandle(hFile);
то нельзя удалить.
Спасибо!!!
З.Ы. Просто я открывал файл проводником,а потом его удалял.Так вот,видимо при открытии он(файл) весь считывается и сразу закрывается.
И поэтому,я посчитал,что [0].Еще раз спасибо.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.036 c