**编辑:有人指出我的代码确实可以工作。但它将“this.zip”文件标识为子文件夹,因此列出了“contents\this.zip”的任何文件夹,这不是我想要的。(试图只找到那些'contents\newfolder\this.zip',所以'contents'目录至少有一个子文件夹)。我怎样才能让它只列出实际文件夹的目录,而不仅仅是 .zip 文件?
我正在编写一个程序来处理标题为 'this.zip' 的文件,这些文件通常直接位于一个名为 'contents' 的文件夹中。我正在尝试确定 this.zip 文件是否直接位于“contents”文件夹中,或者是否有一个子文件夹。我有一组代码正在确定“内容”文件夹是否为空,我认为可以更改它以查找包含子目录的任何“内容”文件夹,但它不起作用。
//This finds 'contents' folders that are empty
DirectoryInfo directory = new DirectoryInfo(txtbxOldFolder.Text);
DirectoryInfo[] folders = directory.GetDirectories("*contents*",SearchOption.AllDirectories);
Var query = from folder in folders
where folder.GetFileSystemInfos().Length == 0
select folder.FullName.ToString();
foreach (string str in query)
{
//this adds the path of any empty 'contents' folder
listEmptyFolder.Add(str);
}
我想如果我将查询 - where 语句更改为长度> 1,它将找到任何具有子目录的内容,但它不起作用。这是完成我正在尝试的最佳方法,还是这种尝试使用 LINQ 甚至会起作用?
//This is supposed to find 'contents' folders that have subdirectories, but it's unsuccessful
DirectoryInfo directory = new DirectoryInfo(txtbxOldFolder.Text);
DirectoryInfo[] folders = directory.GetDirectories("*contents*",SearchOption.AllDirectories);
Var query = from folder in folders
where folder.GetFileSystemInfos().Length > 1
select folder.FullName.ToString();
foreach (string str in query)
{
//this adds the path of any empty 'Contents' folder
listNestedFolders.Add(str);
}