Проверьте и выведите список подпапок на основе содержимого папок C # Winforms - PullRequest
0 голосов
/ 15 января 2019

У меня есть папка с именем "C:\Foo\", и в этой папке есть папки "Bar", "Bob", "Bill" и "BAM". В каждой папке есть куча файлов.

Я хочу просмотреть все подпапки "C:\Foo\" и вернуть имена папок в зависимости от их содержимого или отсутствия:

foreach (folder in folders)
{
    if (folder !contains "someFile.pdf")
    {
        listBox1.Items.Add(folder);
    }

Так что listBox1 заполнится словами «Боб», «БАМ» и «Билл», потому что у них нет someFile.pdf. Итак, я вижу, что у Боба, БАМа и Билла нет в своем каталоге файла someFile.pdf.

Я проверил и нашел код, который делает подобные вещи, но ничего не заполнил список подпапок на основе их содержимого.

1 Ответ

0 голосов
/ 15 января 2019

Вам нужно будет использовать FileSystemObject для просмотра ваших папок и файлов.

string[] files = 
    Directory.GetFiles("C:\Foo\","*", SearchOption.AllDirectories);

Подробнее см. В MDSN: Метод Directory.GetFiles

Или, как предложил @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);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...