簡體   English   中英

獲取所有僅包含文件的子目錄

[英]Get all sub directories that only contain files

我有一個路徑,我想列出其下的子目錄,其中每個子目錄不包含任何其他目錄。 (僅那些不包含文件夾,而僅包含文件的子目錄。)

有什么聰明的方法嗎?

據我了解,您想在給定路徑下列出僅包含文件的子目錄。


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

DirectoryInfo

DirectoryInfo dInfo = new DirectoryInfo(<path to dir>);
DirectoryInfo[] subdirs = dInfo.GetDirectories();

您可以使用Directory.GetDirectories方法。

但是我不確定我是否正確理解了您的問題...您能否澄清?

基於Havard的答案,但略短一些(可能更易於閱讀,因為它使用!Subdirs.Any()而不是Subdirs.Length == 0 ):

static IEnumerable<string> GetSubdirectoriesContainingOnlyFiles(string path)
{
   return Directory.GetDirectories(path, "*", SearchOption.AllDirectories)
          .Where( subdir => !Directory.GetDirectories(subdir).Any() );
}

另請注意,這需要using System.Linq; 可以工作,因為它使用LINQ查詢語言。 (當然using System.IO;對於Directory類:))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM