获取仅包含文件的所有子目录

Nig*_*ker 7 .net c#

我有一个路径,我想列出它下面的子目录,其中每个子目录不包含任何其他目录.(仅限那些不包含文件夹但仅包含文件的子目录.)

有这么聪明的方法吗?

Håv*_*d S 21

我的理解是,您希望列出仅包含文件的给定路径下的子目录.


static IEnumerable<string> GetSubdirectoriesContainingOnlyFiles(string path)
{
  return from subdirectory in Directory.GetDirectories(path, "*", SearchOption.AllDirectories)
         where Directory.GetDirectories(subdirectory).Length == 0
        select subdirectory;
}
Run Code Online (Sandbox Code Playgroud)

  • 对于没有子目录的目录,`Directory.GetDirectories(子目录)`将返回一个空的`string []`,其长度为`0`.因此,我们只选择符合该标准的目录来获取仅包含文件的目录(尽管可能没有文件). (2认同)

Rvd*_*vdK 16

的DirectoryInfo

DirectoryInfo dInfo = new DirectoryInfo(<path to dir>);
DirectoryInfo[] subdirs = dInfo.GetDirectories();
Run Code Online (Sandbox Code Playgroud)