Получаем имена файлов из заданной папки
Очень часто программисту приходится работать с файлами, которые находятся в определенной папке. Например, есть приложение, которое ночью выводит прайс-листы из базы данных в определенную папку. В идеальном случае, вы можете жестко прописать в коде названия файлов. Но это неправильный подход, ведь нет гарантии, что разработчик не поменяет названия выводимых файлов или изменится их число. Поэтому лучше обезопасить себя от таких случаев и поручить работу по получению имен файлов из папки самой программе.
К счастью, есть удобный класс DirectoryInfo из пространства имен System.IO, который предоставляет различные методы для работы с каталогом: создание, удаление, перечисление содержимого каталога. Последний метод нам и нужен. Метод носит название GetFiles, который и позволяет получить список файлов.
Перейдем к практике. Расположим на форме элементы ListBox (список) и Button (кнопку). Пишем код для кнопки:
using System.IO; private void button1_Click(object sender, EventArgs e) { DirectoryInfo dinfo = new DirectoryInfo("E:\\Down"); FileInfo[] files = dinfo.GetFiles(); foreach (FileInfo filenames in files) { listBox1.Items.Add(filenames); } }
Используя цикл foreach, мы проходим по полученному массиву имен файлов из папки E:\Down и заполняем список ListBox. Это простейший пример. У метода GetFiles есть еще одна перегруженная версия, позволяющая задать шаблон для файла. Предположим, нас не интересуют все файлы в папке, а только файлы с расширением PDF. Тогда вам нужен метод GetFiles(string searchPattern), у которого в параметре вы можете указать шаблон для поиска. Вы можете использовать подстановочные знаки * и ?. Например, так.
DirectoryInfo dinfo = new DirectoryInfo("E:\\Down"); FileInfo[] files = dinfo.GetFiles("*.pdf""); foreach (FileInfo filenames in files) { listBox1.Items.Add(filenames); }
Реклама