2012-06-10 156 views
1

假設我有一個名爲test的文件夾。
現在我將該文件夾傳遞給一個程序,它將在包含目標文件夾的相同目錄中輸出一個名爲test.xyz的文件。C#創建與文件夾名稱相同的文件,擴展名爲

我使用的一般的邏輯是一樣的東西

string outDir = Path.GetDirectoryName(path); 
string outName = Path.GetFileName(path).TrimEnd("\\".ToCharArray()) + ".xyz"; 
string outFile = Path.Combine(outDir, outName); 

其中一期工程,但它似乎有點過度進行如此多的操作只是爲了建立我的新的文件名。

1:我可以減少路徑調用的數量以實現我的結果嗎?
2:我可以做一些關於第二行以避免修剪並避免使用該添加操作嗎?

+0

請讓我們知道答案是否有幫助。 –

回答

0

您可以使用FileInfo!

string path = @"C:\Windows\System32\"; 
FileInfo fi = new FileInfo(path); 
string outFile = fi.DirectoryName + ".xyz"; 

工程就像一個魅力。即使是目錄字符串中的尾部斜槓

+0

避免修剪聽起來像會導致更乾淨的代碼。 – MxyL

2

這似乎在我的快速測試工作:

string outFile = Path.GetFullPath(path) + ".xyz"; 

雖然我只是意識到你path可包括尾隨斜線了。如果您無法更改以避免這種情況,那麼您仍然必須包含.TrimEnd()呼叫。我在測試中使用var path = @"C:\Windows\System32";

+0

除此之外,您可以使用Path.Combine來避免修剪 – Filip

相關問題