0

我目前正在寻找一种解决方案来查找我正在查看的目录中已添加、删除、更改或重命名的文件。

我在 Windows 7 上使用 C++ QT 5.1.1。但是,“相对”的系统独立解决方案会很好。我查看了 QT,它只提供了一个 DirectoryWatcher,它会告诉我目录是否发生了变化——不是——发生了什么变化。(我需要什么部分)。POCO 在其文件系统区域提供相同的功能。Boost 似乎也不支持这一点。

在 MSDN 中:http: //msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.created (v=vs.110).aspx

取自示例:

 // Define the event handlers. 
   static void OnChanged( Object^ /*source*/, FileSystemEventArgs^ e )
   {
      // Specify what is done when a file is changed, created, or deleted.
      Console::WriteLine( "File: {0} {1}", e->FullPath, e->ChangeType );
   }

   static void OnRenamed( Object^ /*source*/, RenamedEventArgs^ e )
   {
      // Specify what is done when a file is renamed.
      Console::WriteLine( "File: {0} renamed to {1}", e->OldFullPath, e->FullPath );
   }

有没有办法在我的 QT 应用程序中使用它或更“自然”的 C++ 方法?

所有的帮助都是值得的。非常感谢。

4

1 回答 1

0

这个QFileSystemWatcher类可以做一些你需要的事情,尽管它可以做的事情是有限的。例如,它不提供详细的重命名/移动通知。

于 2013-10-21T02:25:00.380 回答