Как я могу получить полный путь к указанному пути (может быть каталог или файл, или даже полный путь), используя C #? - PullRequest
2 голосов
/ 25 октября 2011

Самое близкое, что я получаю, это использование new FileInfo(path).FullPath, но насколько я знаю, FileInfo предназначен только для файлов, а не для каталогов.

См. Также мои комментарии к Ответ Джона Скита здесь для контекста.

Ответы [ 8 ]

4 голосов
/ 25 октября 2011

Класс Path также дает вам много хороших методов и свойств, например, GetFullPath (). Подробнее см. MSDN .

2 голосов
/ 25 октября 2011
0 голосов
/ 25 октября 2011

Согласно msdn , FileSystemInfo.FullName получает полный путь к каталогу или файлу , и может применяться к FileInfo.

FileInfo fi1 = new FileInfo(@"C:\someFile.txt");
Debug.WriteLine(fi1.FullName); // Will produce C:\someFile.txt
FileInfo fi2 = new FileInfo(@"C:\SomeDirectory\");
Debug.WriteLine(fi2.FullName); // Will produce C:\SomeDirectory\
0 голосов
/ 25 октября 2011

Используйте класс DirectoryInfo, который расширяет FileSystemInfo и даст правильный результат для файлов или каталогов.

        string path = @"c:\somefileOrDirectory";
        var directoryInfo = new DirectoryInfo(path);
        var fullPath = directoryInfo.FullName;
0 голосов
/ 25 октября 2011

Попробуйте это:

String strYourFullPath = "";
IO.Path.GetDirectoryName(strYourFullPath)
0 голосов
/ 25 октября 2011

Я думаю, что это -

DirectoryInfo.FullName
0 голосов
/ 25 октября 2011

Вы можете использовать file.getdirectory , чтобы сделать это.

0 голосов
/ 25 октября 2011

Используйте класс DirectoryInfo для путей к каталогам.Работает во многом так же, как FileInfo.

Обратите внимание, что свойство для пути называется FullName.

DirectoryInfo di = new DirectoryInfo(@"C:\Foo\Bar\");
string path = di.FullName;

Если вы хотите определить, является ли путь файлом или каталогом,вы можете использовать статические методы из класса Path :

string path1 = @"C:\Foo\Bar.docx";
string path2 = @"C:\Foo\";

bool output1 = Path.HasExtension(path1); //Returns true
bool output2 = Path.HasExtension(path2); //Returns false

Однако пути могут также содержать нечто, похожее на расширение, поэтому вы можете использовать его в сочетании с некоторыми другимичеки, например bool isFile = File.Exists(path);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...