2013-06-13 53 views
4

我正在研究需要能夠在Windows和Linux上運行的C#控制檯應用程序。它將在.NET 3.5和Mono上運行。我希望能夠檢查目錄是否存在於當前正在運行的目錄中。由於Windows使用反斜槓進行目錄遍歷,並且Linux使用正斜槓,因此如何檢查另一個目錄中是否存在目錄?System.IO.Directory.Exists()與Windows和Linux一起使用

我正在使用System.IO.Directory.Exists。我認爲一個簡單的方法是首先檢查當前工作文件夾中的「/」或「\」以確定使用哪一個文件夾,但在某些情況下可能會有一個轉義字符,這會讓事情變得糟糕!

+1

Mono提供可移植性指南,看看在路徑分隔符節:http://www.mono-project.com/Guidelines:Application_Portability – dna

+0

這是一個偉大的鏈接。感謝那! – muncherelli

回答

5

Windows對此非常寬容。你可以使用正斜槓,它會理解。

如果你不想把它可能會混淆的機會(我不是100%肯定的Windows 總是明白這一點),你可以使用Path.DirectorySeparatorChar

+0

+1拉出另一種皮膚剝皮內置的方式! –

6

使用Path.Combine建立自己的路徑。考慮以下代碼:

var path = Path.Combine(
    Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), 
    "childFolder"); 
相關問題