2014-09-22 173 views
5

我有一個功能,可以通過確定String PathFile還是Directory來自動創建指定的Path如果路徑不存在,如何檢查字符串路徑是「文件」還是「目錄」?

FileAttributes attributes = File.GetAttributes("//Path"); 

if ((attributes & FileAttributes.Directory) == FileAttributes.Directory) 
    { 
     Directory.CreateDirectory("//Path"); 
    } 

但是如果它不:

通常情況下,我想如果路徑已經exists使用?如何檢查String Path是否爲FileDirectory如果不存在?

+1

'File.Exists'和'Directory.Exists' – 2014-09-22 13:57:49

+2

您要檢查的東西,甚至不存在?如果你想檢查一個給定的名字是否是一個有效的文件名,你可以簡單地檢查它是否有擴展名,否則它可能是一個目錄。 – HimBromBeere 2014-09-22 13:58:10

+0

@MetroSmurf認真嗎? 「如果路徑不存在,如何檢查路徑是文件還是目錄?」 – Rawling 2014-09-22 13:58:13

回答

5

如果您的方案中的文件必須有擴展名,那麼您可以使用此方法。

注意:在windows中有合法的在目錄中有句點,但這主要是爲了跨文件操作系統的兼容性而引入的。在嚴格的Windows環境中,如果文件沒有擴展名,或者在目錄名中放置句點或空格,就被認爲是不好的形式。如果你不需要考慮這種情況,那麼你可以使用這種方法。如果不是,你將不得不通過鏈或結構發送某種標誌來識別字符串的意圖。

var ext = System.IO.Path.GetExtension(strPath); 
if(ext == String.Empty) 
{ 
    //Its a path 
} 

如果您不需要做文件類型的任何分析,你可以去簡單:

if(System.IO.Path.HasExtension(strPath)) 
{ 
    //It is a file 
} 
+2

修改爲布爾擴展= System.IO.Path。HasExtension(「// Path」)' – Enumy 2014-09-22 14:19:58

+3

+0:注意:雖然此方法可能適用於OP,但它是錯誤的:文件夾名稱沒有限制,不包含點。擁有名爲「MyImages.jpg」或「Game.Saves」的文件夾完全可以。 – 2014-09-22 14:38:10

+0

我想我在答案中明確表達了這一點。 – Carter 2014-09-22 14:56:39

相關問題