2014-01-20 52 views
1

我看到這個問題:Prevent a user from deleting, moving or renaming a file,但它不符合我的需要。
如果我理解正確,只要該流打開,文件就被鎖定。使用C#鎖定文件#

我想要在我的計算機中的文件列表中,在某個文件夾內,不能被編輯,或者被重命名爲
編輯預防很簡單 - 我只設置System.IO.FileAttributes.ReadOnly(效果很好)

現在我需要防止重命名一個文件和目錄

+1

您可以簡單地使用內置於您正在使用的任何文件系統中的權限系統。 (這就是它的原因) –

+0

只讀仍然允許文件重命名,另外我需要確保文件夾不能重命名 – user990635

+0

我不是說標記文件爲「只讀」,我說的是平坦拒絕訪問到特定用戶,組或容器 –

回答

0

我的理解是重命名或移動在兩個刪除操作核心。你可以試着去捕捉並預防。我不確定你真的可以做你想做的事情,但似乎並沒有成爲它的標誌。

http://msdn.microsoft.com/en-us/library/system.io.fileattributes(v=vs.110).aspx

這可能有所幫助。 How to prevent or intercept a call to Directory.Delete(path, true)

+0

JFI:在一個文件系統中重命名是一個單獨的操作,而不是刪除。 –

+0

@ EugeneMayevski'EldoSCorp你能在此擴大嗎?當你說文件系統時,你是指路徑/文件夾嗎?這是在NTFS和FAT?我知道NTFS是一個日記系統,所以這是有道理的,但FAT不是這個原因。不反對只是想了解更多。 – CubanAzcuy

+0

文件系統驅動程序接收來自操作系統的不同請求以執行各種操作。有「打開文件」,「寫入文件」,「刪除文件」等操作。此外還有一個「移動文件」操作,其中新舊文件名是操作的參數。文件名包括路徑,但路徑必須在同一個文件系統中。即如果將file \ PathA \ File1重命名爲file \ PathB \ File2,則不會刪除File1的命令 - 將其重命名/移動並不會被刪除。 –