delphi 能实现实时监控文件吗

delphi 能实现实时监控文件吗,第1张

用 delphi 可以实现实时监控文件。

比较简单的实现办法,是使用第三方控件,比如 TRxFolderMonitor、CnPack 组件包中的TCnFileSystemWatcher 等。

建议不要用FindNextChangeNotification,因为确实不清楚如何获得改变了的文件名,API的话可以使用ReadDirectoryChangesW来完成这个任务(当然还有一个也很好的API SHChangeNotifyRegister)。驱动层的监视更为好,不过这里我就不谈了。

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

char buffer[ dwListBaseLength ] = { 0 }

FILE_NOTIFY_INFORMATION *pNotify = (FILE_NOTIFY_INFORMATION *) buffer

DWORD BytesReturned = 0

ReadDirectoryChangesW( hDirectory, pNotify, sizeof(buffer),

true, FILE_NOTIFY_CHANGE_FILE_NAME, &BytesReturned, NULL, NULL )

ShowMessage( WideCharToString( pNotify->FileName ) )

我是用bcb写的,你将她转为delphi就行了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/7984336.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存