簡體   English   中英

檢測打開文件(使用c#)

[英]Detecting opening file (using c#)

大家好,很抱歉,如果我重復問題(我的英語很糟糕)。 有沒有辦法在用戶打開文件時收到通知? 類似於FileSystemWatcher類,除了“打開”事件? 我只想檢測打開文件而不更改或重命名此文件。 例如,現在我檢測到重命名文件並且也想要檢測打開

private void hookEvents(String path, String password)
    {
        FileSystemWatcher fsw = new FileSystemWatcher();
        fsw.Path = Path.GetDirectoryName(path);
        fsw.Filter = Path.GetFileName(path);
        fsw.Renamed += new RenamedEventHandler(onRenamed);
        fsw.EnableRaisingEvents = true;
    }

PS我聽說過一些有關過濾器和驅動程序的信息,但我希望c#可以簡單地處理我的請求。

我不認為有一個簡單的答案可以在C#中實現。

這個問題有一些信息,但它都是相當低級別的東西......文件系統過濾器驅動程序和API掛鈎!

您想監視文件夾或整個磁盤中的一小組文件嗎?

System.IO.FileSystemWatcher用於監視文件更改。 由於“打開文件”不會更改文件本身,因此無法確定。

有可能的方法來做到這一點

選項1

您可以通過WMI查詢檢測文件是否正在使用(如果您的操作系統是基於Windows的)或打開文件進行寫入(文件正在使用時發生異常)。

選項2

您可以嘗試獲取文件的句柄,並查看哪個進程具有所有權。 如果是這樣,該文件由其他人打開。 查看這篇文章使用C#,如何找出鎖定文件的進程?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM