C ++获取导致目录更改通知的文件的文件名

时间:2013-10-20 10:08:16

标签: c++ qt filesystems filesystemwatcher

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

我在Windows 7上使用C ++ QT 5.1.1。但是,“相对”系统独立解决方案会很好。我查看了QT,它只提供了一个DirectoryWatcher,显示我是否更改了目录 - NOT - 改变了什么。 (我需要什么部分)。 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 ++方法?

所有帮助都是适用的。 非常感谢你。

1 个答案:

答案 0 :(得分:0)

QFileSystemWatcher课程可以完成你需要的一些课程,尽管它的功能有限。例如,它不提供详细的重命名/移动通知。