Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.034 c
4-1092994681
eli
2004-08-20 13:38
2004.10.03
Как узнать раскладку клавиатуры


4-1093212672
ZeBriD
2004-08-23 02:11
2004.10.03
Как подключить виндовские библиотеки???


1-1095244558
Максим
2004-09-15 14:35
2004.10.03
DBGrid c FixedCols


6-1090501569
Григорьев Антон
2004-07-22 17:06
2004.10.03
Странное поведение неблокирующего TCP-сокета


4-1093062659
ASoft
2004-08-21 08:30
2004.10.03
Система, GDI...





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