到目前爲止我遇到的所有情況是這樣的:如何檢查文件是否可以存儲在特定位置而不存儲/創建文件?
- 嘗試存儲文件
- 如果文件存儲這很好
- 如果文件不能存儲告訴它(沒有路徑,沒有權限等)
目前我站在問題之前如何檢查文件是否可以存儲而不存儲它。總的來說,我甚至不知道該怎麼問Google,因爲我得到的所有返回的結果都是關於權限的,在Linux中是一般的,而我在C#/ Windows下需要它。
如何進行這種檢查?
到目前爲止我遇到的所有情況是這樣的:如何檢查文件是否可以存儲在特定位置而不存儲/創建文件?
目前我站在問題之前如何檢查文件是否可以存儲而不存儲它。總的來說,我甚至不知道該怎麼問Google,因爲我得到的所有返回的結果都是關於權限的,在Linux中是一般的,而我在C#/ Windows下需要它。
如何進行這種檢查?
由於您不想嘗試寫入文件夾,因此可以考慮採用這種方法。
你可以把一個嘗試捕捉解決此問題:
System.Security.AccessControl.DirectorySecurity ds = Directory.GetAccessControl(folderPath);
即
public bool CanWriteToPath(string folderPath)
{
try
{
var ds = Directory.GetAccessControl(folderPath);
return true;
} catch (UnauthorizedAccessException)
{
return false;
}
}
,如果你有權限時才能成功。
對不起,它仍然必須使用try/catch。
如何使用try catch
塊?如果發生任何異常 - 您可以捕捉並確定不能保存文件。如果沒有發生異常,則文件成功保存。
是的,我曾經使用它。現在我必須這樣做,而不創建文件。在某些情況下,我可以將文件寫入系統,我不能創建「測試」文件來檢查是否可行。 –
我想你可以使用'FileIOPermission'類。 http://msdn.microsoft.com/en-us/library/system.security.permissions.fileiopermission.aspx –
在File.IO命名空間中有一個Directory.GetAccessControl方法和File.GetAccessControl方法。
如果您想在實際編寫文件之前知道狀態,請檢查指定的目錄是否具有用戶的寫入權限。如果一切正常,寫入文件。您也可以使用其他答案中建議的try catch塊。
嘗試,抓住我很好。 Thx,我會用它! –