在 C# 中驗證使用者對目錄的寫入權限
在執行任何檔案系統寫入作業之前,必須確認使用者對目標目錄的寫入權限。本文為這項關鍵檢查提供了可靠的 C# 方法。
現有方法的限制
傳統方法,例如使用 Directory.GetAccessControl()
,可能不可靠。雖然它們可能指示寫入存取權限,但如果使用者甚至沒有查看目錄安全設定的權限,它們通常會拋出UnauthorizedAccessException
。
強大的解決方案:IsDirectoryWritable()
我們改進的方法,IsDirectoryWritable()
,直接測試寫入訪問,而不依賴可能有問題的權限檢索:
<code class="language-csharp">public bool IsDirectoryWritable(string dirPath, bool throwIfFails = false) { try { using (FileStream fs = File.Create( Path.Combine( dirPath, Path.GetRandomFileName() ), 1, FileOptions.DeleteOnClose) ) { } return true; } catch { if (throwIfFails) throw; else return false; } }</code>
此函數在指定目錄中建立一個暫存檔案。成功建立確認寫入存取權限。 此函數優雅地處理異常,預設回傳 false
,但提供 throwIfFails
選項以進行更受控的錯誤處理。
主要優點:
與現有方法相比,此方法具有多個優點:
結論:
IsDirectoryWritable()
方法提供了一種簡化且可靠的方法來驗證對 C# 目錄的寫入存取權限,從而增強檔案處理操作的穩健性。 它是依賴可能容易出錯的權限檢索的方法的更好替代方案。
以上是如何在 C# 中可靠地檢查對目錄的寫入存取權限?的詳細內容。更多資訊請關注PHP中文網其他相關文章!