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

本文关键字:路径 文件 何使用 | 更新日期: 2023-09-27 18:12:24

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

请参阅我对Jon Skeet回答的评论。

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

Path类还提供了许多很好的方法和属性,例如GetFullPath()。

p ath.GetFullPath()

我想是-

DirectoryInfo.FullName

试试这个:

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

使用扩展FileSystemInfoDirectoryInfo类,并将为文件或目录提供正确的结果。

        string path = @"c:'somefileOrDirectory";
        var directoryInfo = new DirectoryInfo(path);
        var fullPath = directoryInfo.FullName;

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

根据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'

可以使用file。