在我的應用程序中,我需要檢查是否有權寫入文件夾。我用下面的方法:如何檢查應用程序是否有權訪問目錄?
public bool IsAvailable(string path)
{
bool hasPermissions = false;
if (Directory.Exists(path))
{
var permission = new FileIOPermission(FileIOPermissionAccess.Write, path);
try
{
permission.Demand();
hasPermissions = true;
}
catch(SecurityException e)
{
hasPermissions = false;
}
}
return hasPermissions;
}
當我把它送給我知道某些文件夾的路徑沒有人訪問它(我已經刪除了的文件夾的安全選項卡所有用戶的所有權限屬性),它不會拋出任何異常。它只是沿着try塊繼續。
任何想法爲什麼或如何做到這一點檢查更好?
我發現在其他問題上的AppDomain.PermissionSet屬性相關答案沒有成功。
預先感謝您。
代碼訪問安全構建你使用是在.NET運行時的級別實施的,並且是更高級別的,並且完全獨立於操作系統訪問控制所使用的安全描述符。也就是說,phresnel的答案是正確的 - 任何檢查你執行的操作都會隨着你嘗試一些I/O而過時,所以更好的方法就是嘗試I/O並且爲因權限問題導致失敗做好準備。 – shambulator 2013-03-27 10:12:38