Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
Denis91
32 / 32 / 4
Регистрация: 01.07.2013
Сообщений: 230
#1

Поиск файлов в папке

10.12.2013, 11:19. Просмотров 1427. Ответов 6
Метки нет (Все метки)

Здравствуйте! Если не сложно помогите мне вот с этим:
Стоит задача найти файлы в папке для их последующего пересохранения в новую.
Есть два параметра поиска-скриншот. У них всегда будет одинаковое количество записей. Названия выглядят примерно так:
123_Форма№2._3
21_Баланс№123._12
32_счета(бухгалтерия)._2
6_Шаблон№13.(валюта)._90
Я так понимаю мне нужен цикл который будет выполнятся столько раз сколько записей у меня в comboBox.
А вот как найти файлы я ХЗ. Знаю нужны регулярки, но не могу написать их вообще.
Пример поиска KOD_FORM = 123, KOD_ACTION = 3: находит 1-ый файл в моём списке и пересохраняет с другим именем в другую папку, Форма№2.xls.
Прошу помощи. Очень нужно
0
Миниатюры
Поиск файлов в папке  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2013, 11:19
Ответы с готовыми решениями:

Поиск файлов в папке
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { string files =...

Поиск файлов в папке
Добрый день, программа должна добавить файл в папку с номерным знаком (пример:...

Поиск файлов в папке
День добрый ребят, возникла проблемка, нужно найти файлы в папке, файлы имеют...

Поиск файлов в папке и подпапках
Приветствую всех. Есть папка, в ней много подпапок, в каждой из которых...

Поиск файлов по расширению в заданной папке
Доброго времени суток. Как "просканировать" заданный каталог, чтобы найтив ...

6
ITL
276 / 247 / 73
Регистрация: 17.07.2012
Сообщений: 616
10.12.2013, 12:09 #2
Вот поиск по папке. Только регекс по названию, если "._2" это разширения файла, то регекс не подойдет.

C#
1
2
3
4
5
6
    DirectoryInfo dir = new DirectoryInfo(@"D:\");
 
    Regex reg = new Regex(@"(^_*\d).*(_*\d)");
 
    var files = dir.GetFiles("*.*", SearchOption.TopDirectoryOnly)
     .Where(path => reg.IsMatch(path.Name)).ToList();
1
Denis91
32 / 32 / 4
Регистрация: 01.07.2013
Сообщений: 230
10.12.2013, 12:15  [ТС] #3
Цитата Сообщение от ITL Посмотреть сообщение
если "._2" это разширения файла
Нет это не расширение. Эти файлы на самом деле шаблоны экселя.
Пока ждал написал вот такой патерн чтобы найти "._?"
C#
1
string pattern = "\\.[^.]*[" + kod_action + "][^.]*$";
Но если kod_action =1 допустим, то найдёт не только "._1", но и "._11"
Спасибо вам попробую использовать.
0
ITL
276 / 247 / 73
Регистрация: 17.07.2012
Сообщений: 616
10.12.2013, 12:19 #4
Denis91, я немного не так написал. У меня под общий шаблон, я не учитывал, что допустим в начале только 1 ,а в конце _12.
0
Denis91
32 / 32 / 4
Регистрация: 01.07.2013
Сообщений: 230
10.12.2013, 12:22  [ТС] #5
C#
1
2
3
string kod_action = Convert.ToString(comboBox8.Text);
                        string kod_form = Convert.ToString(comboBox7.Text);
                        string pattern = @"(^_*\"+kod_action+").*(_*\""+kod_action+")";
Попробовал вставить переменные , но получилось вот это. Экранирование получилось
(^_*\1).*(_*"1)
0
ITL
276 / 247 / 73
Регистрация: 17.07.2012
Сообщений: 616
10.12.2013, 12:38 #6
Код_форм и Код_акшн сам подставишь какой надо:

C#
1
2
3
4
5
6
7
8
9
10
11
12
    private static void Main(string[] args)
    {
        DirectoryInfo dir = new DirectoryInfo(@"D:\MYPROJECTS\forTEstConsoleblabla");
 
        string KOD_FORM = "123";
        string KOD_ACTION = "3";
 
        string startChars = String.Format("{0}_", KOD_FORM);
        string endChars = String.Format("._{0}", KOD_ACTION);
        var files = dir.GetFiles("*.*", SearchOption.TopDirectoryOnly)
              .Where(file => file.Name.StartsWith(startChars) && file.Name.EndsWith(endChars+file.Extension)).ToList();
    }
1
Denis91
32 / 32 / 4
Регистрация: 01.07.2013
Сообщений: 230
10.12.2013, 12:44  [ТС] #7
Спасибо большое! Наконецто прогу уже допишу))
0
10.12.2013, 12:44
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2013, 12:44

Поиск файлов в папке и получение путей к ним (консоль)
Все привет! Как выполнить поиск имеющихся файлов в папке и получить их адреса?...

Поиск файлов в папке с условием и вывод путей в ListBox
В папке есть несколько подпапок. Программа перебирает все папки на предмет...

Отсутствие файлов в папке
Хочу спросить, в следующем коде, который патчит файлы, если половина файлов if...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru