如果path =“\ ProgramFiles \ MobileApp \ es-gl \ a.dll”。我想单独获得“\ ProgramFiles \ MobileApp \ es-gl”。只想知道文件a.dll的父目录。 c#中有任何内置方法吗?我正在使用.net Compact Framework
答案 0 :(得分:7)
System.IO.Path.GetDirectoryName(path)
答案 1 :(得分:3)
我还需要这样一个函数来无缝地找到文件夹的父目录。所以我自己创建了一个:
public static string ExtractFolderFromPath(string fileName, string pathSeparator, bool includeSeparatorAtEnd)
{
int pos = fileName.LastIndexOf(pathSeparator);
return fileName.Substring(0,(includeSeparatorAtEnd ? pos+1 : pos));
}
只需发送pathSeparator(“\”表示windows,“/”表示类似unix的路径)。 如果要在末尾包含分隔符,请将最后一个参数设置为true。对于前: C:\ FOO \
答案 2 :(得分:1)
我不确定,但我认为Compact Framework支持FileInfo
和DirectoryInfo
类。
试试这个:
FileInfo myFile = new FileInfo("\ProgramFiles\MobileApp\es-gl\a.dll");
string parentDirectory = myFile.Directory.Name;
根据MSDN文档,您也可以这样做:
FileInfo myFile = new FileInfo("\ProgramFiles\MobileApp\es-gl\a.dll");
string parentDirectory = myFile.DirectoryName;
查看这些MSDN链接以获取更多信息:
http://msdn.microsoft.com/en-us/library/system.io.fileinfo_members(v=vs.71)
http://msdn.microsoft.com/en-us/library/system.io.fileinfo.directory(v=vs.71)
答案 3 :(得分:1)
FileInfo(System.IO命名空间)上有一个父目录。示例代码:
var file = new FileInfo(@"\ProgramFiles\MobileApp\es-gl\a.dll");
var parent = file.Directory.Parent;
答案 4 :(得分:0)
var directory = Path.GetDirectoryName(@"c:\some\path\to\a\file.txt");
// returns "c:\some\path\to\a"
答案 5 :(得分:0)
您可以使用字符串类的方法。
string path = @"\ProgramFiles\MobileApp\es-gl\a.dll";
string newPath = path.Substring(0, path.LastIndexOf('\\'));