根据文件夹C#Winforms的内容检查并列出子文件夹

时间:2019-01-15 17:10:33

标签: c# winforms

我有一个名为"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。

我检查了一下,发现有执行类似操作的代码,但是没有内容可根据其内容填充子文件夹列表。

1 个答案:

答案 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);
    }