Самое близкое, что я получаю, это использовать new FileInfo(path).FullPath
, но насколько я знаю, FileInfo предназначен только для файлов, а не для каталога.
См. также мои комментарии к Jon Skeet answer here для контекста.
Самое близкое, что я получаю, это использовать new FileInfo(path).FullPath
, но насколько я знаю, FileInfo предназначен только для файлов, а не для каталога.
См. также мои комментарии к Jon Skeet answer here для контекста.
Класс Path также дает вам множество хороших методов и свойств, например. GetFullPath(). Подробнее см. MSDN.
Используйте класс 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);
Вы можете использовать file.getdirectory, чтобы сделать это.
Я думаю, что это -
DirectoryInfo.FullName
Попробуйте следующее:
String strYourFullPath = "";
IO.Path.GetDirectoryName(strYourFullPath)
Используйте класс DirectoryInfo
, который расширяет FileSystemInfo
и даст правильный результат для файлов или каталогов.
string path = @"c:\somefileOrDirectory";
var directoryInfo = new DirectoryInfo(path);
var fullPath = directoryInfo.FullName;
Согласно 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\