На заметку! Некоторые атрибуты не могут быть установлены программно. Например, атрибут Encrypted устанавливается операционной системой, только если вы используете EFS (Encrypting File System — файловая система с шифрованием) для криптографической защиты файлов.

Фильтрация файлов с помощью шаблонов

Объекты DirectoryInfo и Directory — оба представляют способ поиска в текущем каталоге файлов или каталогов, соответствующих определенному выражению фильтра. Эти поисковые выражения могут использовать стандартные символы шаблонов * и ?. Шаблон ? представляет любой единственный символ, а * — любую последовательность из нуля или более символов. Например, следующий фрагмент кода извлекает имена всех файлов, находящихся в каталоге c:\temp и имеющих расширение .txt. Затем код проходит по элементам полученной коллекции FileInfo найденных файлов и отображает имя и размер каждого на них.

DirectoryInfo dir = new DirectoryInfо(@"c:\temp");

// Получить все файлы с расширением .txt.
FileInfo[] files = dir.GetFiles("*.txt");

// Обработать каждый файл.
foreach (FileInfo file in files)
{ ... }

Подобной техникой можно воспользоваться для извлечения каталогов, удовлетворяющих определенному поисковому шаблону, используя перегруженный метод DirectoryInfo.GetDirectories(). Методы GetFiles() и GetDirectories() осуществляют поиск только в текущем каталоге. Чтобы пройти по всем вложенным подкаталогам, вы должны применить рекурсивную логику.

Извлечение информации о версиях файлов

Информация о версиях файлов — это такая информация, которую вы видите, просматривая свойства файла ЕХЕ или DLL в проводнике Windows. Информация о версии обычно включает номер версии, наименование компании-производителя компонента, информацию о торговой марке и так далее.

Классы FileInfо и File не предоставляют способа получения информации о версии. Однако вы можете извлечь ее достаточно легко, используя статический метод GetVersionInfo() класса System.Diagnostics.FileVersionInfo. Следующий пример использует эту технику для получения строки с полной информацией о версии, а затем отображает ее в метке:

string fileName = @"c:\Windows\explorer.exe";
FileVersionInfo info = FileVersionlnfo.GetVersionInfo(fileName);
lblInfo.Text = info.FileVersion;

В табл. 13.8 перечислены свойства, которые вы можете прочесть.

 

предыдущая    следующая страница    вначало главы    оглавление

581

Hosted by uCoz