C#取下1个目录
我已经尝试了几种方法来实现这一点,但这里是 我有以下目录: c:\1\2\3 我需要进入这个目录: c:\1\2 并非总是只有3个目录,可能是这样的:C#取下1个目录,c#,C#,我已经尝试了几种方法来实现这一点,但这里是 我有以下目录: c:\1\2\3 我需要进入这个目录: c:\1\2 并非总是只有3个目录,可能是这样的: Console.WriteLine(Directory.GetParent(@"c:\one\two\three\four\five").FullName); c:\1\2\3\4\5 其中我需要: c:\1\2\3\4 总是一个目录下来 有人有什么建议吗 谢谢 Eroc您正在查找。您可以使用DirectoryInfo的属性或静态方法: 另外,
Console.WriteLine(Directory.GetParent(@"c:\one\two\three\four\five").FullName);
c:\1\2\3\4\5
其中我需要:
c:\1\2\3\4
总是一个目录下来
有人有什么建议吗
谢谢
Eroc您正在查找。您可以使用DirectoryInfo
的属性或静态方法:
另外,如果您对启动路径感兴趣,可以使用AppDomain.CurrentDomain.BaseDirectory或Application.StartupPath(WinForms)您可以使用如下方法:
Console.WriteLine(Directory.GetParent(@"c:\one\two\three\four\five").FullName);
结果=>
c:\one\two\three\four
请记住检查parent是否为null(如果您的输入目录为root)。实际上,您应该使用parent.FullName来获取“c:\one\two\three\four”字符串。可能是我所拥有的内容导致了问题。我正在尝试获取以下内容的父项:System.Reflection.Assembly.getExecutionGassembly().Location)如果我这样做了,则此操作有效:Path.GetDirectoryName(Path.GetDirectoryName(System.Reflection.Assembly.getExecutionGassembly().Location))我不确定这是否正确,但…似乎有点过分--请记住检查父目录是否为null(如果输入目录为根目录)。
c:\one\two\three\four