关于wxFileSystemWatcher输出文件名的解决方法

本文针对的wxWidgets版本: 2.9.4, 2.9.5,其他版本未作测试。

如果要使用 wxFileSystemWatcher 并且让其产生的wxFileSystemWatcherEvent 事件中的路径中包含文件名,那么你或许得使用个小技巧:在 Add 或 AddTree 中的路径参数中,加上斜杆!例如 wxFileSystemWatcherEvent::Add(_T("C:\\Windows")) 产生的路径中不会输出文件名,而是要 wxFileSystemWatcherEvent::Add(_T("C:\\Windows\\")) 末尾加上反斜杆就可以了。这是跟踪了wxWidgets 的代码后发现的秘密。因为 wxFileName::IsDir 的判断并不是从文件系统中获取的,而是简单的根据路径字符串的构成得出结论。

你可能感兴趣的:(Watcher)