如何从文件的完整路径获取目录?

Eve*_*ien 495 .net c# directory file-io file

获取文件所在目录的最简单方法是什么?我正在使用它来设置工作目录.

string filename = @"C:\MyDirectory\MyFile.bat";
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我应该得到"C:\ MyDirectory".

Jon*_*eet 798

如果你肯定有绝对的路径,请使用Path.GetDirectoryName(path).

如果您可能只获得相对名称,请使用new FileInfo(path).Directory.FullName.

请注意,PathFileInfo在命名空间都发现System.IO.

  • @UlyssesAlves:我相信“new FileInfo(path).Directory.FullName”在任何一种情况下都应该有效。 (2认同)

Che*_*ian 59

System.IO.Path.GetDirectoryName(filename)
Run Code Online (Sandbox Code Playgroud)


Grz*_*nio 21

Path.GetDirectoryName(filename);
Run Code Online (Sandbox Code Playgroud)


Ree*_*sey 12

您可以使用System.IO.Path.GetDirectory(filename),或将路径转换为a FileInfo,并使用FileInfo.Directory.

如果你在路上做其他事情,FileInfo可能会有优势.

  • Path 类中没有 'GetDirectory 方法;你一定是说'GetDirectoryName (3认同)

the*_*stv 11

使用下面提到的代码来获取文件夹路径

Path.GetDirectoryName(filename);
Run Code Online (Sandbox Code Playgroud)

在您的情况下,这将返回"C:\ MyDirectory"


Bra*_*don 10

您可以使用Path.GetDirectoryName并只传入文件名.

MSDN链接


Der*_*k W 5

如果您正在处理一个FileInfo对象,那么有一种简单的方法可以string通过DirectoryName属性提取目录完整路径的表示形式。

FileInfo.DirectoryName通过 MSDN的属性描述:

获取表示目录完整路径的字符串。

示例用法:

string filename = @"C:\MyDirectory\MyFile.bat";
FileInfo fileInfo = new FileInfo(filename);
string directoryFullPath = fileInfo.DirectoryName; // contains "C:\MyDirectory"
Run Code Online (Sandbox Code Playgroud)

链接到MSDN 文档


Dav*_*tro 5

您可以使用以下方式获取当前的Application Path:

string AssemblyPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location).ToString();
Run Code Online (Sandbox Code Playgroud)

祝好运!