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

获取文件所在目录的最简单方法是什么? 我用这个来设置一个工作目录。

string filename = @"C:\MyDirectory\MyFile.bat"; 

在这个例子中,我应该得到“C:\ MyDirectory”。

如果你肯定有一个绝对path,使用Path.GetDirectoryName(path)

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

请注意, PathFileInfo都在名称空间System.IOfind。

 System.IO.Path.GetDirectoryName(filename) 
 Path.GetDirectoryName(filename); 

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

如果你正在做其他的事情, FileInfo可能会有优势。

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

MSDN链接

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

 Path.GetDirectoryName(filename); 

这将返回“C:\ MyDirectory”在你的情况

如果您正在使用FileInfo对象,则可以通过DirectoryName属性提取目录完整path的string表示forms。

通过MSDN FileInfo.DirectoryName属性的说明:

获取表示目录完整path的string。

示例用法:

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

链接到MSDN文档 。

您可以使用以下命令获取当前的应用程

 string AssemblyPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location).ToString(); 

祝你好运!

首先,你必须使用System.IO命名空间。 然后;

 string filename = @"C:\MyDirectory\MyFile.bat"; string newPath = Path.GetFullPath(fileName); 

要么

 string newPath = Path.GetFullPath(openFileDialog1.FileName)); 

对于大多数情况,您可以使用Path.GetFullPath 。 但是,如果你想获得的path也是在文件名相对位于的情况下,那么你可以使用下面的通用方法:

 string GetPath(string filePath) { return Path.GetDirectoryName(Path.GetFullPath(filePath)) } 

例如:

GetPath("C:\Temp\Filename.txt")返回"C:\Temp\"

GetPath("Filename.txt")返回current working directory"C:\Temp\"