Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проверить файл на соответствие маске 
V
    Опции темы
santilaas
Дата 5.1.2008, 06:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 322
Регистрация: 28.8.2005
Где: Блага

Репутация: нет
Всего: нет



Привет всем!
Проблема такая: ищу XML-файлы так: string[] dir = Directory.GetFiles(@"Catalog", "*.xml");
а как мне задать поиск с такими параметрами: чтобы длина имени файла была скажем 21 символа, а лучше,
чтобы имя файла соответствовало маске : PC_PP_01_31122007.xml? (типа PC_"2 символа от A до Z"_"2 цифры от 0 до 9"_"8 цифр от 0 до 9") - т.е если xml файл не соответствует этой маске он не выбирается.
Заранее спасибо!


--------------------
[
PM MAIL   Вверх
Stepan_Lameroff
Дата 5.1.2008, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 16.12.2006

Репутация: 9
Всего: 14



Посмотрите прикрепленный файл.
Фильтрация по имени (regex | wildcard, include, exclude), размеру и времени последнего изменения.

Присоединённый файл ( Кол-во скачиваний: 9 )
Присоединённый файл  FSIterator.zip 15,71 Kb
PM MAIL   Вверх
1stain
Дата 5.1.2008, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 30.7.2007
Где: Киев - Харьков

Репутация: 8
Всего: 40



Код

    public class Program
    {
        public static readonly string fileNamePattern = @"^PC_[A-Z]{2}_\d{2}_\d{8}\.xml$";
        public static void Main(string[] args)
        {
            System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(fileNamePattern);
            Console.Write("Input directory path: ");
            string searchDir = Console.ReadLine();
            List<string> filesForProcessing = new List<string>(Directory.GetFiles(searchDir, "PC_*.xml")).FindAll(delegate(string file){ return regex.IsMatch(Path.GetFileName(file));});
            foreach (string str in filesForProcessing)
                Console.WriteLine(str);
        }
    }



--------------------
Все знают, что это невозможно. Но вот приходит невежда, которому это неизвестно - он-то и делает открытие. (Albert Einstein)
user posted image
PM MAIL   Вверх
santilaas
Дата 6.1.2008, 02:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 322
Регистрация: 28.8.2005
Где: Блага

Репутация: нет
Всего: нет



Спасибо, друзья, - особенное спасибо тебе, 1stain - отличный пример (+1)


--------------------
[
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0687 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.