C # - проверка имени файла заканчивается определенным словом - PullRequest
3 голосов
/ 21 октября 2010

Привет, я хотел бы знать, как проверить имя файла в C #, чтобы убедиться, что оно заканчивается определенным словом (не только содержит, но и находится в конце имени файла)

например, я хочу изменить некоторые файлы, заканчивающиеся суффиксом «Поставщик», поэтому я хочу проверить каждый файл, чтобы проверить, заканчивается ли он «Поставщиком», поэтому LondonSupplier.txt, ManchesterSupplier.txt и BirminghamSupplier.txt все будут проверены и вернут true но ManchesterSuppliers.txt не сможет.

это вообще возможно? Я знаю, что вы можете проверить имя файла для проверки определенного слова в любом месте имени файла, но возможно ли сделать то, что я предлагаю?

Ответы [ 4 ]

17 голосов
/ 21 октября 2010

Попробуйте:

Path.GetFileNameWithoutExtension(path).EndsWith("Supplier")
1 голос
/ 21 октября 2010

Используя метод System.IO.Path.GetFileNameWithoutExtension(string), вы можете извлечь имя файла (без расширения) из строки. Например, вызов его со строкой C: \ svn \ trunk \ MySourceFile.cs вернет строку MySourceFile . После этого вы можете использовать метод String.EndsWith, чтобы увидеть, соответствует ли ваше имя файла вашим критериям.

1 голос
/ 21 октября 2010

if (myFileName.EndsWith ("что угодно")) {// Делать вещи}

0 голосов
/ 21 октября 2010

Решение Linq:

    var result = FilePaths.Where(name => Path.GetFileNameWithoutExtension(name).EndsWith("Supplier"))
                      .Select(name => name).ToList();

Предполагая, что FilePaths является списком, содержащим все пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...