Stealch
@Stealch
Админ, мотобродяга.

Почему эта переменная возвращает System.string[] вместо пути?

Пытаюсь получить путь к файлу, имя содержит версию и версия будет меняться. Однако переменная мне возвращает совершенно не то, что должна.
var jar = Directory.GetFiles(path, "decima-0*.jar", SearchOption.TopDirectoryOnly);

В целевой папке всего один файл, соответствующий шаблону - decima-0.1.23.jar но создается впечатление что я либо шаблон неправильно сделал - либо он почему-то игнорируется и я получаю значение переменной jar = System.string[]
  • Вопрос задан
  • 128 просмотров
Решения вопроса 2
NikFaraday
@NikFaraday
Student full-stack Developer
Ну во-первых, потому что так в документации написано.

Во-вторых, само название метода GetFiles ничего вам не говорит? Данный метод возвращает список файлов в указанной директории.

В целевой папке всего один файл

И что? Значит метод вернёт вам массив с одним элементом. Если вы хотите получить конкретный файл, значит вам нужно что-то на подобии File.Open и т.д.

значение переменной jar = System.string[]

Тут по очереди. У вас System.string[] вылез, скорее всего из какого-то Console.WriteLine. Почему? Потому что тип вашего jar и массив типа string. Когда вы пытаете вывести какой-то тип в Console.WriteLine, который не предусмотрен в перегрузках, он будет вам выводить GetType().FullName, т.е. название типа, которое вам и выводится.

Вообще, очень дурна привычка использовать var, просто не делайте так, а то вы плутаете сами себя и вы не понимаете, что вам должен возвращать метод
Ответ написан
mindtester
@mindtester Куратор тега C#
http://iczin.su/hexagram_48
https://learn.microsoft.com/ru-ru/dotnet/api/syste...

... а дальше ваш выбор анализировать... linq ни кто не отменял ;)))

ps допустим:
var jar = Directory.GetFiles(@"\", "decima-0*.jar", SearchOption.TopDirectoryOnly).First();
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Adler_lug
@Adler_lug
А что она по вашему должна возвращать?
Документацию не осилили почитать?
Изучайте -> https://learn.microsoft.com/ru-ru/dotnet/api/syste...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы