如何使用C#获取给定路径的完整路径(可以是目录或文件,甚至是完整路径)?

时间:2011-10-25 08:59:42

标签: c# path .net filesysteminfo

我最接近的是使用new FileInfo(path).FullPath,但据我所知,FileInfo仅用于文件,而不是目录。

有关上下文,请参阅我对Jon Skeet's answer here的评论。

8 个答案:

答案 0 :(得分:4)

Path类还为您提供了许多不错的方法和属性,例如GetFullPath()。有关所有详细信息,请参阅MSDN

答案 1 :(得分:2)

答案 2 :(得分:0)

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);

答案 3 :(得分:0)

您可以使用file.getdirectory来完成此操作。

答案 4 :(得分:0)

我认为是 -

DirectoryInfo.FullName

答案 5 :(得分:0)

试试这个:

String strYourFullPath = "";
IO.Path.GetDirectoryName(strYourFullPath)

答案 6 :(得分:0)

使用扩展DirectoryInfo的{​​{1}}类,并为文件或目录提供正确的结果。

FileSystemInfo

答案 7 :(得分:0)

根据msdnFileSystemInfo.FullName获取目录或文件的完整路径,can be applied获取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\