2009-09-16 96 views
3

我使用VSTS 2008 + C#+ .Net 3.5開發控制檯應用程序。對於文件訪問,我們可以以獨佔模式訪問文件,阻止其他進程/線程訪問文件 - 這具有「鎖定」文件的效果。我們可以鎖定一個目錄嗎?

我想知道目錄,有沒有任何內置的API或解決方案,使目錄獨佔訪問 - 有「鎖定」的效果?例如,如果一個線程「鎖定」目錄,其他線程/進程不能調用Directory.GetFiles,不能將文件寫入目錄,不能從目錄中讀取文件等。

回答

1

如果這是你自己的過程,可能會干擾你可以使用一個名爲互斥同步。要避開其他進程是非常困難的,通常的做法是迴避臨時(隱藏)目錄,執行你的工作並複製/移回結果。

+0

1.「通常的做法是迴避臨時(隱藏)目錄,做你的工作,並複製/移動結果。」 - 好主意!感謝您是否可以描述更多內容或向我推薦更多有關此主題的閱讀材料? 2.我想確認你有沒有內置的文件系統API來鎖定一個目錄? – George2 2009-09-16 17:09:16

+0

感謝您的幫助Henk,我已將您的答覆標記爲已回答。 – George2 2009-09-18 12:50:46

1

我想你是什麼可以做的就是設置目錄的訪問控制,然後在完成後再將其更改。看看這裏:

http://msdn.microsoft.com/en-us/library/system.io.directory.setaccesscontrol.aspx

+1

你的意思是刪除除我以外的所有其他用戶的訪問?如果是的話,我的困惑是,如果我創建一個有2個線程的進程,兩個線程都運行在同一個帳戶上,在這種情況下,我怎樣才能阻止其中一個線程訪問,但啓用另一個線程的訪問? – George2 2009-09-16 16:26:23

相關問題