2011-06-07 29 views
-1

我使用此代碼顯示錯誤時file是開放的:文件中使用的檢測不是圖片/文件夾的工作

try 
{ 
    stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None); 
} 
catch (IOException) 
{ 
    MessageBox.Show("file is open!"); 
} 

的問題是,代碼不帶圖片(JPG,BMP等工作)和文件夾。

有什麼,我失蹤?

+9

**爲什麼**會把代碼放在''標籤中? – SLaks 2011-06-07 14:23:31

+0

當你說「不工作」時,你的意思是說它沒有說文件是開放的,即使它是?你如何打開文件?你有更多的細節嗎? – NickAldwin 2011-06-07 14:24:37

+0

沒有開玩笑,特別是結尾標籤格式不正確的人? – StriplingWarrior 2011-06-07 14:24:38

回答

2

不知道我是否明白你想做什麼...我想你想知道是否有人正在查看該圖像。

僅當某個應用程序具有打開的句柄時,文件纔會「打開」。當您使用圖片查看器時,可能(很可能)查看器打開文件,讀取文件並立即關閉文件。因此,文件本身並不適用。

這適用於各種文件,但許多文件是有意保留的(例如,Office應用程序通常會保持文件打開狀態)。

一般而言,您不應該假設「文件句柄已打開」,「某用戶以某種方式使用」文件「的操作完全相關。該文件可能是開放的,但沒有人在互動(也許搜索deamon正在索引它)。另一方面,文件可能對用戶「可見」,但在文件系統上關閉。

+0

是否意味着沒有辦法做到這一點..? – hakam 2011-06-07 15:59:16

+0

這是不是真正明確你想要做什麼。通過查看文件,你無法看到用戶在做什麼(如果這是你想要的)。無論如何,監控文件操作非常棘手。當然,你可以拍攝屏幕並以某種方式分析它們,但這絕對是複雜的。而且我更擔心隱私。你需要做什麼? – mnemosyn 2011-06-07 16:13:58

0

此代碼在您的方案中不起作用。然後你打開圖片系統讀取文件,解壓縮圖像並顯示給你並關閉文件。您可以在Windows中打開時刪除它。

+0

是否意味着沒有辦法做到這一點..? – hakam 2011-06-07 15:56:57

相關問題