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

Вниз

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

 
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 вся ветка

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

Наверх




Память: 0.45 MB
Время: 0.036 c
4-1093249421
Li_
2004-08-23 12:23
2004.10.03
как hook ом отловить нажатие cntrl+q ?


1-1095313186
stud
2004-09-16 09:39
2004.10.03
работа с TImage


1-1095181528
Новичок!!!
2004-09-14 21:05
2004.10.03
Рисование на Image


9-1083102901
Gr
2004-04-28 01:55
2004.10.03
импорт объектов


1-1095261340
dimon_programmer
2004-09-15 19:15
2004.10.03
ProgressBar подвисает во время вычислений





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский