Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Поиск файла по маске(Regex) / 14 сообщений из 14, страница 1 из 1
29.01.2014, 12:20
    #38541860
ильдар4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по маске(Regex)
Добрый день.

Необходимо получить файлы из директории по маске. Название файла начинается с "Client", конец файла "_delete.xlsx".

Используя тестовый пример(ниже) загружаются все файлы которые содержат "_delete.xlsx" без учета начального выражения. Необходима помощь в регулярке.

Пример:

var mask = @"^[Client]+(.*_delete.xlsx*).*$";
var searchPattern = new Regex(mask, RegexOptions.IgnoreCase);
var files = Directory.GetFiles(fullPath).Where(f => searchPattern.IsMatch(f));
...
Рейтинг: 0 / 0
29.01.2014, 12:29
    #38541878
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по маске(Regex)
ильдар4,

а если так?
Код: c#
1.
var files = Directory.GetFiles("Client*_delete.xlsx");
...
Рейтинг: 0 / 0
29.01.2014, 12:32
    #38541888
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по маске(Regex)
ильдар4, проще так: var files = Directory.GetFiles(fullPath, "Client*_delete.xlsx")
...
Рейтинг: 0 / 0
29.01.2014, 12:35
    #38541893
ильдар4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по маске(Regex)
bazile,

Да так я тоже сделал, но как быть когда мне нужно найти файлы "Client*.xlsx", которые должны быть без "_delete.xlsx"? Я поэтому и стал регулярку писать
...
Рейтинг: 0 / 0
29.01.2014, 12:47
    #38541912
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по маске(Regex)
^Client.*_delete.xlsx$
...
Рейтинг: 0 / 0
29.01.2014, 12:53
    #38541916
ильдар4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по маске(Regex)
Arm79,

Такой вариант не работает
...
Рейтинг: 0 / 0
29.01.2014, 12:55
    #38541920
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по маске(Regex)
ильдар4но как быть когда мне нужно найти файлы "Client*.xlsx", которые должны быть без "_delete.xlsx"?ты всё-таки определись, нужен "_delete.xlsx" или нет :)
...
Рейтинг: 0 / 0
29.01.2014, 12:57
    #38541923
ильдар4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по маске(Regex)
Яростный Меч,

Не нужен
...
Рейтинг: 0 / 0
29.01.2014, 13:03
    #38541933
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по маске(Regex)
примерно так

Код: c#
1.
2.
3.
var mask = "Client*.xlsx";
var searchPattern = new Regex(@"_delete\.xlsx$", RegexOptions.IgnoreCase);
var files = Directory.GetFiles(fullPath, mask).Where(f => !searchPattern.IsMatch(f));
...
Рейтинг: 0 / 0
29.01.2014, 13:04
    #38541935
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по маске(Regex)
ильдар4Arm79,
Такой вариант не работает

Да ладно. Какие имена файлов не проходят?
Эти подходят:
Clienteewrwe_delete.xlsx
Client_delete.xlsx
...
Рейтинг: 0 / 0
29.01.2014, 13:11
    #38541950
ильдар4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по маске(Regex)
Arm79,

Да, эти файлы в том числе
...
Рейтинг: 0 / 0
29.01.2014, 13:16
    #38541962
ильдар4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по маске(Regex)
Arm79,

Как-то так еще работает: (Client).*?_.*?(_)(delete)(\\.)(xlsx)
...
Рейтинг: 0 / 0
29.01.2014, 13:19
    #38541966
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по маске(Regex)
ильдар4Arm79,

Как-то так еще работает: (Client).*?_.*?(_)(delete)(\\.)(xlsx)

У меня работает
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
        private void button3_Click(object sender, EventArgs e)
        {
            var rg = new Regex(@"^Client.*_delete\.xlsx$", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
            var arr = new string[] {"Clienteewrwe_delete.xlsx", "Client_delete.xlsx", "Client_update.xlsx"};

            foreach (string s in arr)
            {
                Match match = rg.Match(s);

                if (match.Success)
                    richTextBox1.Text += match.Value + Environment.NewLine;
            }
        }
...
Рейтинг: 0 / 0
29.01.2014, 13:26
    #38541978
ильдар4
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск файла по маске(Regex)
Всем спасибо
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Поиск файла по маске(Regex) / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]