Выборка всех файлов в директории осуществляется простым вызовом метода Directory.GetFiles()
string[] fullfilesPath = Directory.GetFiles(@"d:MyProjectMyFiles");
Данный массив будет содержать строковые значения всех найденных файлов. К примеру, если в данной директории имеется три файла price.doc, photo.jpg, data.rar, то наш массив будет содержать записи:
fullfilesPath[0] – "d:MyProjectMyFilesprice.doc"; fullfilesPath[1] – "d:MyProjectMyFilesphoto.jpg"; fullfilesPath[2] – "d:MyProjectMyFilesdata.rar";
Выборка всех файлов конкретного типа из директории
view plaincopy to clipboardprint? string[] fullfilesPath = Directory.GetFiles(@"d:MyProjectMyFiles", "*.doc");
Данный массив будет содержать строковые значения всех найденных файлов. В данном примере fullfilesPath содержит всего одну запись
fullfilesPath[0] – "d:MyProjectMyFilesprice.doc";
Выборка всех файлов по части имени из директории осуществляется второй перегрузкой метода Directory.GetFiles()
view plaincopy to clipboardprint? string[] fullfilesPath = Directory.GetFiles(@"d:MyProjectMyFiles", "p*");
Соответственно результаты будут следующими:
fullfilesPath[0] – "d:MyProjectMyFilesprice.doc"; fullfilesPath[1] – "d:MyProjectMyFilesphoto.jpg";
Если мы точно знаем несколько символов в имени требуемого файла, то можем более точно указать критерий поиска, например «pr*». В этом случае мы получим только файл price.doc. Кстати, мы можем, конечно, и не знать не только полное имя файла, но и его тип. Соответственно, в строке критерия можно задавать что-то типа «pr*.do*». В этом случае, мы найдем все файлы, имена которых начинаются с «pr» и их тип начинается с «do». Еще примером может быть критерий поиска «p*o.j*g». Под этот запрос попадет файл photo.jpg. Выборка всех файлов директории, включая поддиректории. Если нам необходимо просмотреть все поддиректории, то в методе Directory.GetFiles() следует указать третий параметр SearchOption – перечисление, которое может принимать два значения AllDirectories/TopDirectoryOnly. Из названий уже само собой понятно какой параметр следует выбрать для поиска в поддиректориях.
view plaincopy to clipboardprint? string[]fullfilesPath = Directory.GetFiles(@"d:MyProjectMyFiles", "*.*", SearchOption.AllDirectories);
Удаление ненужных файлов директории. После получения имен необходимых файлов мы можем их удалить следующим способом:
view plaincopy to clipboardprint?
Array.ForEach(fullfilesPath,
delegate(string currentPath)
{
File.Delete(currentPath);
}
);
Если с анонимными методами вы еще не знакомы, то знайте, что анонимные методы – это обычные методы, вызов которых может осуществлять только делегат, непосредственно определяющий данный метод. Нигде больше в коде данный метод вызвать нельзя хотя бы потому, что данный метод не имеет имени. Это обстоятельство привносит в архитектуру приложения дополнительную безопасность. Но и без делегатов вполне возможно работать с данным методом:
view plaincopy to clipboardprint? foreach (string fileName in fullfilesPath) File.Delete(fileName);
0.00 (0%) 0 votes








