2010-06-11 2 views
0

Если есть более эффективный способ сделать следующее:Использование DirectoryInfo в C#

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

Я понимаю, что это только две строки кода, но, учитывая, что у меня уже есть каталог, он чувствует, как я должен быть в состоянии сделать что-то вроде:

newFileName = di.Combine(“MyFile.txt”); 

EDIT:

Должно быть более понятно - у меня уже есть путь для другой цели, так:

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

Это не требует фиксации, уже в качестве компактной и надежной он может получить. Вы можете написать его в одной строке, сделать его менее читаемым. –

ответ

5

Почему бы не просто сделать newFileName = Path.Combine(@"c:\", "MyFile.Txt");?

Как вы говорите, у вас уже есть путь.

+1

+1, тоже была моя первая мысль. – OregonGhost

+0

Я отредактировал мое сообщение - у меня есть объект DirectoryInfo по какой-то причине –

+0

@ pm_2: Я не уверен, что это улучшит работу, но вы всегда можете написать 'newFileName = Path.Combine (MyFuncReturnsDir(). FullName, «MyFile.Txt»); 'если вы хотите его на одной строке. –

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"); 
Смежные вопросы