2014-02-18 245 views
1

我正在創建一個管理某些文件的簡單程序,該程序必須跟蹤用戶所做的文件移動。監視Windows資源管理器事件

(我不是在此階段捕獲所有正在運行的WINDOS資源管理器的窗口和關於保持始終在托盤欄激活程序擔心,但我可能會問,後來在另外一個問題)

所以,我需要的是簡單的:

  • 啓動Windows資源管理器通過編程
  • 監控所有的文件移動,創造和排除(由用戶該窗口內製造)

是否有與C#一起使用的API?

P.S:這是一個Winforms應用程序,所以如果還有其他方法可以做到這一點,他們將不勝感激。

謝謝。

+0

你確實需要使用Windows資源管理器的殭屍副本?或文件跟蹤是您的主要任務? –

+1

類似[this](http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher%28v=vs.110%29.aspx)? – Nasreddine

+0

文件跟蹤是主要任務。我只是認爲使用Windows資源管理器會更容易,看起來好像有更好的選擇... –

回答

2

可以使用FileSystemWatcher

要初始化FileSystemWatcher

FileSystemWatcher fileSystemWatcher = new FileSystemWatcher(@"E:\TestDir"); 
fileSystemWatcher.Changed += OnChanged; 
fileSystemWatcher.Created += OnChanged; 
fileSystemWatcher.Deleted += OnChanged; 
fileSystemWatcher.Renamed += OnChanged; 
fileSystemWatcher.EnableRaisingEvents = true; 

而且給onChanged-事件:

private static void OnChanged(object sender, FileSystemEventArgs e) 
    { 
     WatcherChangeTypes watcherChangeTypes = e.ChangeType; 
     string fullPath = e.FullPath; 
     string name = e.Name; 
    } 
+0

仍然不會處理如何檢測用戶在Windows資源管理器窗口中所做的更改 –

+0

@AdrianSalazar在結尾處查看示例的鏈接 –

+0

如果您在每個可用的邏輯驅動器上實施FileSystemWatcher。然後它會在技術上檢測文件系統中所做的任何更改。因此也在Windows資源管理器窗口中。無論如何,沒有其他方式可以檢測到變化。 – woutervs