Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Вниз

Как отследить изменения в каталоге?   Найти похожие ветки 

 
DimaS   (2003-07-17 13:49) [0]

Как отследить изменения в каталоге? Чтобы программа узнала, когда например из другой проги удалили файл в этом каталоге.


 
Prov   (2003-07-17 14:16) [1]

FindFirst
FindNext
FindClose


 
Skier   (2003-07-17 14:18) [2]

DimaS © (17.07.03 13:49)
Никак


 
Толик   (2003-07-17 14:19) [3]

FindFirstChangeNotification + FindNextChangeNotification + FindCloseChangeNotification + WaitForSingleObject


 
Толик   (2003-07-17 14:20) [4]

to Skier © (17.07.03 14:18)
Ну это через чур категорично... :)


 
Skier   (2003-07-17 14:22) [5]

>Толик © (17.07.03 14:20)
А твой вариант для какой ситуации подходит ? Любой ?


 
Толик   (2003-07-17 14:24) [6]

По крайней мере для тех, которые в WinHelp"е описаны:

FILE_NOTIFY_CHANGE_FILE_NAME
FILE_NOTIFY_CHANGE_DIR_NAME
FILE_NOTIFY_CHANGE_ATTRIBUTES
FILE_NOTIFY_CHANGE_SIZE
FILE_NOTIFY_CHANGE_LAST_WRITE
FILE_NOTIFY_CHANGE_SECURITY


 
Skier   (2003-07-17 14:28) [7]

>Толик © (17.07.03 14:24)
Хм...
А я так понял что для твоего варианта нужно запустить внешнее приложение из программы на Delphi (приложения автора) и ждать...
Так оно обстоит ?


 
Толик   (2003-07-17 14:30) [8]

Ну ждать-то можно и в отдельном потоке. Только потом его надо прибить корректно, если ничего не удалялось.


 
Skier   (2003-07-17 14:32) [9]

>Толик © (17.07.03 14:30)
Это я понял.
Но нужно запустить программу в приложении через CreateProcess
Не так ли ?


 
Толик   (2003-07-17 14:36) [10]


procedure TForm1.Button6Click(Sender: TObject);
var
h: THandle;
begin
h := FindFirstChangeNotification(pchar(ExtractFilePath(Application.ExeName)),
FALSE, FILE_NOTIFY_CHANGE_FILE_NAME);
if WaitForsingleObject(h, INFINITE) = WAIT_OBJECT_0 then
ShowMessage("for example: file deleted");
end;

Самое обычное приложение, я его запускал прямо из-под Делфей. После клика на кнопке приложение повисает до тех пор, пока не произойдут какие-то изменения в ExtractFilePath(Application.ExeName). Всё тупо до безобразия.


 
Skier   (2003-07-17 14:40) [11]

>Толик © (17.07.03 14:36)
Убедил. C Толик © (17.07.03 14:20) согласен :)


 
Толик   (2003-07-17 14:42) [12]

to Skier © (17.07.03 14:40)
спасибо за признание :))


 
Skier   (2003-07-17 14:44) [13]

>Толик © (17.07.03 14:42)
Я проcто думал что нужен CreateProcess.
В общем : "Признаю свою вину, меру, степень, глубину !" :)


 
panov   (2003-07-17 15:47) [14]

см. пример в статье на сайте.



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

Форум: "Основная";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.014 c
1-100714
Endi
2003-07-18 15:35
2003.07.31
Определние, что поступило сообщение


6-100850
Yegor
2003-05-25 21:42
2003.07.31
Окно


3-100553
Silver_
2003-07-07 12:44
2003.07.31
ADODataSetDeforeEdit ----> Имя текущего поля


3-100532
gsvserg
2003-07-10 18:14
2003.07.31
Права доступа


1-100687
denis24
2003-07-18 10:58
2003.07.31
вычисление новой даты





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