Главная страница
    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.008 c
8-100845
AlexOld
2003-04-07 11:16
2003.07.31
Выделение мышью фрагмента на Canvas


3-100625
paxer
2003-07-08 10:39
2003.07.31
FireBird Embedded


14-100924
Михаил_
2003-07-13 22:45
2003.07.31
Помогите выбрать LCD монитор


3-100601
tamara
2003-07-08 15:22
2003.07.31
Locate


1-100722
Anatoly P
2003-07-18 12:53
2003.07.31
RGB - яркость





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