Member 13302374 Ответов: 2

C# - возвращает коллекцию, содержащую все имена файлов в заданном каталоге


Привет,

Меня попросили об этом Возвращает коллекцию, содержащую все имена файлов в данном каталоге (не включая подкаталоги) Код, который я попробовал, приведен ниже. Это должно быть правильно, потому что мой путь.AsDirectory ().Заражен()
метод возвращает список файлов, содержащихся в каталоге (за исключением подкаталогов).

Прямо сейчас у меня есть красная волнистая линия под словом "путь" рядом с возвращением. Там написано: не удается неявно строку скрытого типа 'К 'Системы.Коллекции.Общий.IEnumerable & lt;string>' Почему это? Как я могу исправить код?

С уважением

Что я уже пробовал:

public static IEnumerable<string> GetFiles(string path)
{
    path.AsDirectory().GetFiles();
    return path; 

}

Afzaal Ahmad Zeeshan

Почему вы возвращаете сам параметр?

2 Ответов

Рейтинг:
2

Afzaal Ahmad Zeeshan

То, что вы делаете (по иронии судьбы), заключается в том, что вы возвращаете тот же аргумент, который был передан функции. : смех: то, что вам нужно сделать, это то, что вам нужно получить файлы из каталога и системы.В IO есть все, что вам нужно для этой задачи.

public static IEnumerable<string> GetFiles(string path)
{
    return path.AsDirectory().GetFiles(); 
    // I don't know where you found this extension for string
}

// I would rewrite it to
public static IEnumerable<string> GetFiles(string path) {
    return Directory.GetFiles(path).ToList();
}

Это сделало бы трюк, который вы хотите, чтобы он сделал. Также обратите внимание, что это возвращает только имена файлов, а не каталоги — в системе есть другая функция.Пространство имен IO для этого, ищите его. :-)

Наконец, просто верните список (почему вы возвращаете строку? Очевидно, это должен быть список всех файлов).

Каталог.Метод GetFiles (String) (System.IO)[^]


Karthik_Mahalingam

5 для объяснения

Afzaal Ahmad Zeeshan

Спасибо, Картик!

Рейтинг:
16

Pete O'Hanlon

Ваш синтаксис неверен в первой строке вашего метода. Попробуйте вместо этого что-нибудь вроде этого:

public static IEnumberable<string> GetFiles(string path)
{
  return Directory.GetFiles(path);
}


Member 13302374

Твое Здоровье Пит

Pete O'Hanlon

Не проблема. Рад помочь.