我有一个名为"C:\Foo\"
的文件夹,并且在该文件夹中有文件夹"Bar"
,"Bob"
,"Bill"
和"BAM"
。在每个文件夹中,都有很多文件。
我想遍历所有"C:\Foo\"
个子文件夹,并根据其内容或缺少的内容返回文件夹名称:
foreach (folder in folders)
{
if (folder !contains "someFile.pdf")
{
listBox1.Items.Add(folder);
}
因此listBox1
将使用“ Bob”,“ BAM”和“ Bill”填充,因为它们没有someFile.pdf。因此,我可以看到Bob,BAM和Bill的文件夹中都没有someFile.pdf。
我检查了一下,发现有执行类似操作的代码,但是没有内容可根据其内容填充子文件夹列表。
答案 0 :(得分:6)
您将需要使用FileSystemObject
遍历您的文件夹和文件。
string[] files =
Directory.GetFiles("C:\Foo\","*", SearchOption.AllDirectories);
有关详情,请参阅MDSN:Directory.GetFiles Method
或者按照@BradleyDotNet的建议(谢谢),使用EnumerateFiles
:
有关详细信息,请参阅文档:Directory.EnumerateFiles
string sourceDirectory = @"C:\foo";
try
{
var allFiles
= Directory.EnumerateFiles(sourceDirectory, "*", SearchOption.AllDirectories);
foreach (string currentFile in allFiles)
{
string fileName = currentFile.Substring(sourceDirectory.Length + 1);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}