【问题标题】:How can I get directory name of a path?如何获取路径的目录名称?
【发布时间】:2010-03-09 20:44:35
【问题描述】:

我尝试使用 Path.GetDirectoryName() 但它不起作用。

我想从 /home/nubela/test/some_folder 得到什么,我想得到“some_folder”

我该怎么做?该方法应该适用于 Windows/Linux (Mono)

谢谢!

【问题讨论】:

    标签: c# mono


    【解决方案1】:

    改用Path.GetFileName?这些函数只对您提供的字符串起作用,而不关心它是目录还是文件路径。

    【讨论】:

    • 我当然希望如此,我们总是说要使用 Path 函数来实现可移植性。
    • 这是正确的方法。方法名称具有误导性,但它所做的只是获取 nubela 想要的路径的最后部分。注意特别警告,如果你给它一个像 "C:\temp\" 这样的路径,它将返回一个空字符串,因为它只是获取最后一个路径分隔符之后存在的内容,在这种情况下,它位于字符串的末尾。见msdn.microsoft.com/en-us/library/…
    【解决方案2】:

    如果您已经将路径作为字符串,您可以使用此方法提取最低级别的目录:

    String dir
        = yourPath.Substring(
              yourPath.LastIndexOf(Path.DirectorySeparatorChar) + 1);
    

    由于此代码使用Path.DirectorySeparatorChar,因此它与平台无关。

    【讨论】:

      【解决方案3】:

      我的第一个想法也是使用 System.IO.Path.GetDirectoryName。但是您可以尝试使用正则表达式来获取字符串的最终子字符串。 Here is an answer in StackOverflow,使用正则表达式,可以回答这个问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-14
        • 1970-01-01
        • 2010-12-14
        • 2015-02-01
        • 2012-12-03
        • 1970-01-01
        • 2011-04-18
        • 1970-01-01
        相关资源
        最近更新 更多