@Envywewok

Как получить имена всех файлов в папке?

Я пишу сюда, пока не сделал что то максимально стрёмное). Нужно получить имена всех файлов в папке, чтобы уже потом их разбирать и искать то что нужно.
Пробовал так и думал, что близок к успеху:
var test = "..."; // тут путь к папке
 string[] test1 = Directory.GetFiles(test);

Но я получил не имена, а полные пути к файлам + имена файлов.

Пошёл пробовать получать только имена, у меня получилось. Но код выглядит ужасно. Не знаю, как поправить можно.
var test = "C:/Users/Hristoforov/hgtwithourarch/Belarus";
            DirectoryInfo di = new DirectoryInfo(test);
            string[] test1 = new string[Directory.GetFiles(test).Length];
            int i = 0;
            foreach (var s in di.GetFiles())
            {
                test1[i] = s.Name;
                i++;
            }


Вообще задача в том, чтобы разбивать имя файла по переменным и по этим данным решать подходит файл или нет. Если нет варианта получить сразу все имена в массив строк, тогда, наверное, и нету смысла создавать ещё одну структуру, а при переборе (через foreach) сразу проводить все нужные мне действия.
  • Вопрос задан
  • 1477 просмотров
Решения вопроса 1
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
1 - var fnOnly = Path.GetFileName(fullPath)
2 -
var files = Directory.GetFiles(@"c:\").Select(fn => Path.GetFileName(fn));
это будет IEnumerable
3 - если кроме как с массивами работать ни с чем не умеем, ну примерно так
var files = Directory.GetFiles(@"c:\").Select(fn => Path.GetFileName(fn)).ToArray();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Zoominger
@Zoominger
System Integrator
Юзайте GetFileName(String):
https://docs.microsoft.com/ru-ru/dotnet/api/system...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы