2015-11-12 49 views
2

我使用FileSystemWatcher類來檢測在目錄中創建的新文件。我正在創建txt和zip文件。它檢測完美的txt文件,但與zip文件不一樣。我知道是否有人曾與此和你的經驗。FileSystemWatcher檢測zip文件

這裏是我的代碼:

public void CreateWatcher(String path) 
    { 
     //Create a new FileSystemWatcher. 
     FileSystemWatcher watcher = new FileSystemWatcher(path); 

     watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite 
        | NotifyFilters.FileName | NotifyFilters.DirectoryName; 

     Thread.Sleep(2000); 
     //Set the filter to all type of files 
     watcher.Filter = "*.zip"; 

     //Subscribe to the Created event. 
     watcher.Created += new FileSystemEventHandler(watcher_FileCreated); 

     //Enable the FileSystemWatcher events. 
     watcher.EnableRaisingEvents = true; 
    } 

    private void watcher_FileCreated(object sender, FileSystemEventArgs e) 
    { 
     logger.InfoFormat("New zip file created -> " + e.Name); 
    } 

謝謝!

+0

這可能是該文件與另一個延伸,而在另一個目錄,然後移動或在您的choosen路更名爲最初創建。您使用哪個應用程序來創建zip文件? – Steve

+3

你怎麼稱呼你的'CreateWatcher'方法?因爲它看起來像實際的'FileSystemWatcher'對象立即超出範圍。 –

+0

要創建zip文件我正在使用一個簡單的控制檯應用程序,它使用donetzip庫來創建它。 –

回答

1

如果您將過濾器更改爲*.*並將zip文件放到目錄之後,它會執行任何操作嗎?與txt文件相比,zip文件是否非常大?你有沒有試過這是FileSystemWatcher挑剔與文件名區分大小寫?

編輯:添加的代碼塊

+0

Zip文件與txt文件相同。 zip文件的名稱由一個自動生成的id(用'Guid'類和現在的日期時間製作) –

+0

組成。當我把過濾器放在'*。*'中時,它會顯示下一個:例如DotNetZip-1zcc020c.tmp。 –

+0

我在想,如果您只是手動將一些隨機zip文件複製到該目錄,而不是以編程方式創建它,那麼事件會啓動嗎? – Oskari3000