【问题标题】:Get parent directory for some files C# [duplicate]获取某些文件的父目录C# [重复]
【发布时间】:2017-07-24 01:20:09
【问题描述】:

我正在使用

FolderBrowserDialog fbd = new FolderBrowserDialog();
string[] filePaths = Directory.GetFiles(fbd.SelectedPath, "*",SearchOption.AllDirectories);

文件路径如下:

C:\Users\Stef\Desktop\bgdm_v2015\bgdm.dll
C:\Users\Stef\Desktop\bgdm_v2015\something.txt
C:\Users\Stef\Desktop\bgdm_v2015\folder2\file.txt
C:\Users\Stef\Desktop\bgdm_v2015\folder2\file2.txt
C:\Users\Stef\Desktop\bgdm_v2015\folder2\folder3\file.txt

是否有任何函数可以获取文件的父目录? 只喜欢

bgdm_v2015
bgdm_v2015
bgdm_v2015
folder2
folder2
folder3

【问题讨论】:

    标签: c#


    【解决方案1】:

    Path.GetDirectoryName 返回父级的完整路径,Path.GetFileName 返回路径的最后一段(实际上可以是目录,不一定是文件)。所以你可以这样做:

    string parentDirectoryName = Path.GetFileName(Path.GetDirectoryName(fullPath));
    

    【讨论】:

    • 我相信这比我的回答更有效率。
    • @itsme86,可能是因为它从不真正访问文件系统,它只是字符串操作。
    • @itsme86 不管是不是,我想说你的可读性要好得多;)并不是说这个不好,但是......
    • 与重复问题的已接受答案相同。
    • @hatchet 对,谢谢指出
    【解决方案2】:

    你可以使用FileInfo来做。

    var fileInfo = new FileInfo(fileWithPath);
    var parentName = fileInfo.Directory.Name;
    

    【讨论】:

      【解决方案3】:

      完成任务的方法不止一种。

      解决方案 1:

      var result = Path.GetFileName(Path.GetDirectoryName("Enter Path here"));
      

      解决方案 2:

      FileInfo info = new FileInfo("Enter Path here");   
      String getDirectoryName = info.Directory.Name;
      

      【讨论】:

      • 是的,但 OP 只想要父目录的名称,而不是完整路径
      • @ThomasLevesque 哦,好吧,我会更新我的答案
      猜你喜欢
      • 2011-08-08
      • 1970-01-01
      • 2017-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-23
      • 2010-10-19
      • 1970-01-01
      相关资源
      最近更新 更多