在c#中查找父目录

时间:2012-08-08 08:48:45

标签: c# directory .net-cf-3.5

如果path =“\ ProgramFiles \ MobileApp \ es-gl \ a.dll”。我想单独获得“\ ProgramFiles \ MobileApp \ es-gl”。只想知道文件a.dll的父目录。 c#中有任何内置方法吗?我正在使用.net Compact Framework

6 个答案:

答案 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支持FileInfoDirectoryInfo类。

试试这个:

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"

MSDN

答案 5 :(得分:0)

您可以使用字符串类的方法。

        string path = @"\ProgramFiles\MobileApp\es-gl\a.dll";
        string newPath = path.Substring(0, path.LastIndexOf('\\'));