2014-03-26 39 views
0

到目前爲止我遇到的所有情況是這樣的:如何檢查文件是否可以存儲在特定位置而不存儲/創建文件?

  • 嘗試存儲文件
  • 如果文件存儲這很好
  • 如果文件不能存儲告訴它(沒有路徑,沒有權限等)

目前我站在問題之前如何檢查文件是否可以存儲而不存儲它。總的來說,我甚至不知道該怎麼問Google,因爲我得到的所有返回的結果都是關於權限的,在Linux中是一般的,而我在C#/ Windows下需要它。

如何進行這種檢查?

回答

2

由於您不想嘗試寫入文件夾,因此可以考慮採用這種方法。

你可以把一個嘗試捕捉解決此問題:

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。

+1

嘗試,抓住我很好。 Thx,我會用它! –

1

如何使用try catch塊?如果發生任何異常 - 您可以捕捉並確定不能保存文件。如果沒有發生異常,則文件成功保存。

+0

是的,我曾經使用它。現在我必須這樣做,而不創建文件。在某些情況下,我可以將文件寫入系統,我不能創建「測試」文件來檢查是否可行。 –

+0

我想你可以使用'FileIOPermission'類。 http://msdn.microsoft.com/en-us/library/system.security.permissions.fileiopermission.aspx –

1

在File.IO命名空間中有一個Directory.GetAccessControl方法和File.GetAccessControl方法。

如果您想在實際編寫文件之前知道狀態,請檢查指定的目錄是否具有用戶的寫入權限。如果一切正常,寫入文件。您也可以使用其他答案中建議的try catch塊。

相關問題