2010-06-11 58 views
0

如果有一個更有效的方法來做到以下幾點:在C#中使用的DirectoryInfo

DirectoryInfo di = new DirectoryInfo(@"c:\"); 
newFileName = Path.Combine(di.FullName, "MyFile.Txt"); 

我意識到這是代碼只有兩行,但考慮到我已經有目錄,感覺我應該是可以這樣做:

newFileName = di.Combine(「MyFile.txt」); 

編輯:

應該更清楚 - 我已經有路徑用於其他目的,所以:

DirectoryInfo di = MyFuncReturnsDir(); 
newFileName = Path.Combine(di.FullName, "MyFile.Txt"); 
+0

這並不需要固定使用它,它已經是緊湊和可靠它可以得到。你可以把它寫在一行中,使其不易讀。 – 2010-06-11 15:16:13

回答

5

爲什麼不只是做newFileName = Path.Combine(@"c:\", "MyFile.Txt");

正如你所說,你已經有了路徑。

+1

+1,也是我的第一個想法。 – OregonGhost 2010-06-11 14:22:51

+0

我編輯了我的文章 - 我有一個DirectoryInfo對象的原因 – 2010-06-11 14:31:23

+0

@ pm_2:我不確定它會使事情變得更好,但你總是可以寫'newFileName = Path.Combine(MyFuncReturnsDir()。FullName, 「MyFile.Txt」);'如果你想在一行上。 – 2010-06-11 14:41:26

2

@ ho1是對的。

你也可以寫一個擴展方法(C#3.0+):

public static class DirectoryInforExtensions 
{ 
    public static string Combine(this DirectoryInfo directoryInfo, string fileName) 
    { 
    return Path.Combine(di.FullName, fileName); 
    } 
} 

,並通過做

newFileName = di.Combine("MyFile.txt"); 
相關問題