Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2011, 19:28   #1
Nerig
 
Регистрация: 21.06.2009
Сообщений: 8
По умолчанию просмотр папки на наличие новых фалйов

Есть папка. Необходимо чтобы она с некоторой периодичностью просматривалась и при появлении новых файлов, название этих файлов заносились в memo. Помогите)
Nerig вне форума Ответить с цитированием
Старый 14.03.2011, 20:40   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тебе стоит поискать примеры использования ReadDirectoryChanges или FindFirstChangeNotification
Кстати есть компоненты, мониторящие каталоги.
Более того на вкладке Samples, если она у тебя есть, есть такой компонент TShellChangeNotifier
Попробуй его.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.03.2011, 14:37   #3
Nerig
 
Регистрация: 21.06.2009
Сообщений: 8
По умолчанию

ReadDirectoryChanges а вот про нее подробнее можно, пример какой нибудь?
А то сам примеров хороших не нашел(
Nerig вне форума Ответить с цитированием
Старый 15.03.2011, 14:52   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хм... Для Делфи я бы тебе свой компонентик дал...
Насчет си...
возможно: http://www.codeproject.com/KB/files/...gewatcher.aspx
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.03.2011, 15:20   #5
Nerig
 
Регистрация: 21.06.2009
Сообщений: 8
По умолчанию

Stilet
Спасибо за ссылку) вроде хорошая вещь, но к сожалению этот класс у меня не хочет компилится. Да и не хотелось бы добавлять лишние классы к проекту.
Nerig вне форума Ответить с цитированием
Старый 08.04.2011, 11:21   #6
Nerig
 
Регистрация: 21.06.2009
Сообщений: 8
По умолчанию

При нажатии на кнопку, никаких событий не происходит, а прога просто зависает. Подскажите в чем проблема?

Код:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
HANDLE hdir = CreateFile("D:\\Temp",
              FILE_LIST_DIRECTORY,
              FILE_SHARE_READ|FILE_SHARE_WRITE,
              NULL,
              OPEN_EXISTING,
              FILE_FLAG_BACKUP_SEMANTICS,
              NULL);
FILE_NOTIFY_INFORMATION Buffer[1024];
DWORD BytesReturned;
while ( true)
{
int ret = ReadDirectoryChangesW(
        hdir,
        &Buffer,
        sizeof(Buffer),
        True,
        FILE_NOTIFY_CHANGE_SECURITY|
        FILE_NOTIFY_CHANGE_SIZE|
        FILE_NOTIFY_CHANGE_ATTRIBUTES|
        FILE_NOTIFY_CHANGE_DIR_NAME|
        FILE_NOTIFY_CHANGE_FILE_NAME,
        &BytesReturned,
        NULL,
        NULL
        );
switch(Buffer[0].Action)
  {
   case FILE_ACTION_ADDED:
    Memo1->Lines->Add("Файл добавлен");
    break;
   case FILE_ACTION_REMOVED:
    Memo1->Lines->Add("Файл удален");
    break;
   case FILE_ACTION_MODIFIED:
    Memo1->Lines->Add("файл изменен");
    break;
  }
}
CloseHandle( hdir );


}
Nerig вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как проверить наличие папки на удаленном сервере? xxxsas PHP 4 18.01.2011 16:16
Просмотр картинок из папки Elementery Общие вопросы Delphi 5 25.05.2010 17:06
Проверка папки на наличие таблиц.Delphi. Студло Помощь студентам 0 27.03.2010 04:16
Запретить просмотр содержимого папки AidarBik Общие вопросы Delphi 2 19.12.2007 17:57