How do I get the directory from a file's full path?
获取文件所在目录的最简单方法是什么?我用这个来设置一个工作目录。
1 | string filename = @"C:\MyDirectory\MyFile.bat"; |
在这个例子中,我应该得到"c:mydirectory"。
如果您确定有绝对路径,请使用
如果您可能只得到一个相对名称,请使用
注意,
1 | System.IO.Path.GetDirectoryName(filename) |
1 | Path.GetDirectoryName(filename); |
您可以使用
如果你在这条道路上做其他事情,那么
您可以使用
MSDN链路
使用下面提到的代码获取文件夹路径
1 | Path.GetDirectoryName(filename); |
在您的情况下,这将返回"c:mydirectory"
您可以使用以下方法获取当前应用程序路径:
1 | string AssemblyPath = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location).ToString(); |
祝你好运!
如果您使用的是
通过msdn对
Gets a string representing the directory's full path.
样品使用情况:
1 2 3 | string filename = @"C:\MyDirectory\MyFile.bat"; FileInfo fileInfo = new FileInfo(filename); string directoryFullPath = fileInfo.DirectoryName; // contains"C:\MyDirectory" |
链接到msdn文档。
在我的例子中,我需要找到一个完整路径(目录)的目录名,所以我只需要:
1 | var dirName = path.Split('\').Last(); |
首先,必须使用System.IO命名空间。然后;
1 2 | string filename = @"C:\MyDirectory\MyFile.bat"; string newPath = Path.GetFullPath(fileName); |
或
1 | string newPath = Path.GetFullPath(openFileDialog1.FileName)); |
只是在别人需要它的时候,我用在我的相对路径上的是:
1 2 3 4 5 6 | string rootPath ="MyRootDir/MyFolder1/MyFolder2/myFile.pdf"; while (!string.IsNullOrWhiteSpace(Path.GetDirectoryName(rootPath))) { rootPath = Path.GetDirectoryName(rootPath); } Console.WriteLine(rootPath); //Will print:"MyRootDir" |
在大多数情况下,您可以使用
1 2 3 4 | string GetPath(string filePath) { return Path.GetDirectoryName(Path.GetFullPath(filePath)) } |
例如: