C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Слежение за файлами в директории  (Прочитано 3697 раз)
***Frenk***
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 3


Слежение за файлами в директории
« : 27 Май 2008, 21:09:38 »

Хай всем! Использую код
Код:
#define BUF_SIZE 64*1024

void MonitoringThread(void* Directory)
{
AnsiString path=AnsiString((char*)Directory);
// (void*) path=Directory;
HANDLE hDir = CreateFile(path.c_str(), FILE_LIST_DIRECTORY, FILE_SHARE_READ|FILE_SHARE_DELETE,
NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS|FILE_FLAG_OVERLAPPED, NULL);
BYTE* pBuf = (BYTE*) GlobalAlloc(GPTR, BUF_SIZE);
DWORD br = 0;
while (1)
{                                                                     //снизу для файла!!

BOOL res = ReadDirectoryChangesW(hDir, pBuf, BUF_SIZE, TRUE,FILE_NOTIFY_CHANGE_FILE_NAME,&br, NULL, NULL);
FILE_NOTIFY_INFORMATION* pInfo = (FILE_NOTIFY_INFORMATION*) pBuf;
do
{
if (res)
if(pInfo->Action==FILE_NOTIFY_CHANGE_FILE_NAME)
{
char lpFileName[MAX_PATH];
WideCharToMultiByte(CP_ACP, 0, pInfo->FileName, pInfo->FileNameLength/2, lpFileName, MAX_PATH, 0, 0);
lpFileName[pInfo->FileNameLength/2] = 0;
pInfo += pInfo->NextEntryOffset;
//ShowMessage(lpFileName);
}
} while(pInfo->NextEntryOffset);
}
}
в майне вызываю _beginthread(MonitoringThread,0,"C:\\1\\");
Так вот вопрос. Мне нужно отлавливать создание файла. Флаг FILE_NOTIFY_CHANGE_FILE_NAME отвечает за создание/смену имени/удаление файла. Так вот, почему не работает переименование? (при попытки переименования винда ругается, что файл занят и ниче сделать с ним нельзя.)
Записан
funtik1
Участник


Сказали спасибо: +13/-1
Offline

Сообщений: 343


Re: Слежение за файлами в директории
« Ответ #1 : 27 Май 2008, 21:20:45 »

мож эт не совсем в тему, но вот код который следит за изменениями файлов в директории.
Записан
***Frenk***
Участник


Сказали спасибо: +0/-0
Offline

Сообщений: 3


« Ответ #2 : 27 Май 2008, 21:33:17 »

Цитата: funtik1 от 27 Май 2008, 21:20:45
мож эт не совсем в тему, но вот код который следит за изменениями файлов в директории.
СПС, буду разбираться))
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  




....

Powered by SMF 1.1.21 | SMF © 2025, Simple Machines
Страница сгенерирована за 0.042 секунд. Запросов: 21.