Показаны сообщения с ярлыком foreach. Показать все сообщения
Показаны сообщения с ярлыком foreach. Показать все сообщения

понедельник, 20 мая 2013 г.

Как найти файлы в директории с заданными расширениями

Понадобилось мне обработать все изображения в папке, а так как расширений у изображений много, это и gif, jpg, bmp и тп, то простым Directory.GetFiles(path, *.jpg) тут не обойтись. Поэтому нашел простое решение. Можно было б использовать лямбда выражение и сделать код короче, но так нагляднее.

Способ использует цикл в цикле, и проходит по каждому найденному файлу, в директории.

string SelectFolder = "C:/Work/Folder"; // Путь к каталогу
string[] typeOfFiles = {"*.jpg", "*.jpeg", "*.gif", "*.png", "*.bmp", "*.flw" }; 
   foreach (string typeOfFile in typeOfFiles)
   {
       string[] filesForWork = Directory.GetFileSystemEntries(SelectFolder, typeOfFile);
       // Показываем с какими файлами работаем
       foreach (string filesFinded in filesForWork)
       {
        // Вывести только названия файлов без пути
           FileInfo imageName = new FileInfo(filesFinded);
    // вывести названия файлов в листбокс
           listBox1.Items.Add(imageName.Name);
       }
}


Это еще один способ код нашел на cyberforum.ru/:
string[] extensions = new[] { ".jpg", ".tiff", ".bmp" };
 
FileInfo[] files =
    dinfo.GetFiles()
         .Where(f => extensions.Contains(f.Extension.ToLower()))
         .ToArray();

понедельник, 17 сентября 2012 г.

Применение foreach для вывода данных из DataTable в wpf

Применение foreach для вывода данных из DataTable в wpf
var dataTable = new DataTable();
dataTable.Rows[rowIndex].ItemArray[index]//доступ для конкретной строки
dataTable.Rows[rowIndex][/*columnIndex*/|/*columnName*/|/*column*/]
foreach (DataRow row in dataTable.Rows)//итератор для строк
{
var columnValue = row.ItemArray[index];//по индексу
var columnValue = row[/*columnIndex*/ | /*columnName*/ | /*column*/];//по индексу или имени колонки или объекту колонки
}