Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: C# : Обработка файлов по шаблону поиска типа *.txt,??.cpp и тд.  (Прочитано 9800 раз)
0 Пользователей и 1 Гость смотрят эту тему.
makc9I
Гость
« : 20-05-2008 06:39 » 

Мне необходимо, чтобы по образцу, введенному из командной строки, например *.txt  в массив выводились все файлы, существующие в данной директории с расширением TXT, не включая подпапки.Существует ли функция, обрабатывающая шаблоны, не только *, но и другие , такие как ?-один символ и тд.
Записан
Вад
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 20-05-2008 06:47 » 

Класс Regex? System.Text.RegularExpressions
Записан
marat_
Шеф-повар
Опытный

ru
Offline Offline

« Ответ #2 : 20-05-2008 06:50 » 

а если findfirstfile подцепить?

[DllImport("kernel32.dll", CharSet=CharSet.Auto)]
static extern IntPtr FindFirstFile(string lpFileName, out WIN32_FIND_DATA lpFindFileData);

или через System.IO.Directory.GetFiles


Записан
makc9I
Гость
« Ответ #3 : 20-05-2008 19:31 » 

Рассакажите пожалуйста поподробнее, в Визуал студио ХЕлп кривой какойто
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 20-05-2008 19:47 » 

Цитата: makc9I
в Визуал студио ХЕлп кривой какойто
Я смотрю, MSDN жёстко послан и не оценён Отлично Это ты зря, поскольку чего-то более обстоятельного и полного мне ещё не попадалось.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
makc9I
Гость
« Ответ #5 : 22-05-2008 15:34 » 

  string path = System.Environment.CurrentDirectory;
                for (int k = 0; k < System.IO.Directory.GetFileSystemEntries(path, s).Length; k++)
                {
                    string buf;
                    FileNames[k] = System.IO.Directory.GetFileSystemEntries(path, s)[k];
                    buf = FileNames[k].Substring(path.Length, FileNames[k].Length - path.Length);
                    FileNames[k] = buf.Substring(1, buf.Length - 1);
                    quantity++;
                }
сделал так
только проблема этого метода в том, что она автоматически не поддерживает шаблоны типа *,?
Поэтому приходится оперировать с массивом вручную
переменаая quantity считывает кол-во файлов найденных.

Записан
makc9I
Гость
« Ответ #6 : 22-05-2008 15:36 » 

а если findfirstfile подцепить?

[DllImport("kernel32.dll", CharSet=CharSet.Auto)]
static extern IntPtr FindFirstFile(string lpFileName, out WIN32_FIND_DATA lpFindFileData);

или через System.IO.Directory.GetFiles



Марат, не мог бы поподробнее, вроде именно эту библиотеку и надо использовать, только как?
Пишу свою первую программу на C# если что), надо по учебе)
Записан
marat_
Шеф-повар
Опытный

ru
Offline Offline

« Ответ #7 : 22-05-2008 22:21 » 

makc9I, ну тут общие принципы апи знать надо для начала... это слишком жёстко для новичка в диезе.

System.IO.Directory.GetFiles должна на шаблоны реагировать
Записан
MOPO3
Ай да дэдушка! Вах...
Команда клуба

lt
Offline Offline
Пол: Мужской
Холадна аднака!


WWW
« Ответ #8 : 28-05-2008 12:59 » 

marat_, А вы уверены что использование Platform Invoke типа импортирования через [DllImport] будет в итоге работать быстрее нежели родные дотнетовские классы ? Меня лично грызут сомнения сильно по этому поводу.
Записан

MCP, MCAD, MCTS:Win, MCTS:Web
marat_
Шеф-повар
Опытный

ru
Offline Offline

« Ответ #9 : 28-05-2008 22:00 » 

MOPO3, нет не уверен. не мерил. просто первое, что вспомнил, была апишная функция. потом вспомнил про диезовскую родную.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines