Red de conocimiento informático - Problemas con los teléfonos móviles - [programación Delphi] Cómo monitorear archivos en una carpeta específica

[programación Delphi] Cómo monitorear archivos en una carpeta específica

No se recomienda utilizar FindNextChangeNotification porque no está claro cómo obtener el nombre del archivo modificado. La API puede utilizar ReadDirectoryChangesW para realizar esta tarea (por supuesto, también existe una buena API SHChangeNotifyRegister). Las capacidades de monitoreo de la capa de controladores son aún mejores, pero no entraré en eso aquí.

char *strDir = "k:/temp/Other";

HANDLE hDirectory;

hDirectory = CreateFile( strDir, GENERIC_READ|GENERIC_WRITE,

FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,

NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL

);

const unsigned int dwListBaseLength = sizeof( FILE_NOTIFY_INFORMATION ) + MAX_PATH;

búfer de caracteres[ dwListBaseLength ] = { 0 };

FILE_NOTIFY_ INFORMACIÓN *pNotify = (FILE_NOTIFY_INFORMATION *) búfer

DWORD BytesReturned = 0; /p>

ReadDirectoryChangesW( hDirectory, pNotify, sizeof(buffer),

¿Cuál es el valor del buffer?sizeof(buffer),

true, FILE_NOTIFY_CHANGE_FILE_NAME, &BytesReturned, NULL, NULL );

ShowMessage( WideCharToString( pNotify- >FileName ));

Lo escribí en bcb, puedes convertirlo directamente a Delphi.