如果路径 = "\ProgramFiles\MobileApp\es-gl\a.dll"。我想单独获得“\ProgramFiles\MobileApp\es-gl”。只想知道文件a.dll的父目录。c#中是否有任何内置方法?我正在使用 .net Compact Framework
问问题
7331 次
6 回答
7
System.IO.Path.GetDirectoryName(path)
于 2012-08-08T08:50:44.383 回答
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\
于 2012-08-08T09:01:39.107 回答
2
FileInfo(System.IO 命名空间)上有一个父目录。示例代码:
var file = new FileInfo(@"\ProgramFiles\MobileApp\es-gl\a.dll");
var parent = file.Directory.Parent;
于 2012-08-08T09:00:30.300 回答
2
我不确定,但我认为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)
于 2012-08-08T08:57:13.317 回答
0
var directory = Path.GetDirectoryName(@"c:\some\path\to\a\file.txt");
// returns "c:\some\path\to\a"
于 2012-08-08T08:50:53.167 回答
0
您可以只使用字符串类的方法。
string path = @"\ProgramFiles\MobileApp\es-gl\a.dll";
string newPath = path.Substring(0, path.LastIndexOf('\\'));
于 2012-08-08T08:55:10.607 回答