2012-02-11 59 views
1

我正在將媒體內容傳送到客戶端系統(從互聯網下載),並且想要確認媒體文件是否由操作員打開(和查看)。 我使用的是文件系統觀察(C#3.5),以檢查文件的最後訪問時間(所以每當媒體文件播放我應該得到的事件),我發送確認。FIleSystemWatcher上次訪問(讀取)的媒體文件不起作用

我啓用了Windows 7機器註冊表中的最後一次訪問時間here並重新啓動了我的系統。文件系統觀察器在打開的目錄上觸發事件,但不在媒體播放上觸發事件。

這裏是我的代碼:

您也可以從here下載我的代碼示例。

請告訴我如何最好地實現它?我需要得到的最後訪問時間(當過視頻或音頻或圖片的.swf文件被任何播放器上播放)?

回答

0

FileSystemWatcher用於監視指定目錄中的更改。您可以觀察指定目錄的文件和子目錄中的更改。在你的情況下,媒體文件沒有改變。我建議嘗試擴展FileSystemWatcher類併爲媒體文件讀取創建新事件,然後觸發這些事件。

+0

感謝。我可以從FileSystemWatcher類繼承並創建自己的事件並將其解僱。但是,我怎麼知道任何文件(比如媒體文件)的上次訪問時間(讀取)是否發生了變化?我是否應該使用定時器和FileInfo的(這也不會,因爲我將不得不非常頻繁觸發計時器並檢查它的好辦法)嗎?請建議。 – akshaymishra14 2012-02-11 15:55:49

+0

讀取文件時,你的情況的媒體變化有隻讀文件屬性例如我會建議將ReadOnly設置爲true或false,如下所示, 'code'File.SetAttributes(filePath,FileAttributes.ReadOnly); – 2012-02-11 23:25:13

2

作爲對這個三年前問題的更新,現在給出的代碼在本地計算機上播放的視頻中工作正常。

計算機必須LASTACCESS使用以下命令

fsutil behavior set DisableLastAccess 0 

如問題指出成功啓用。


* - 這個帖子的時候,使用Windows Server 2012 R2

+0

非常感謝:)我會試試看。對於有關的項目,我將我們的邏輯改爲提供加密文件,並在解密請求上記錄時間戳。 – akshaymishra14 2015-06-05 10:43:35