
- •11. Организация работы с файлами
- •11.1. Использование стандартных диалоговых окон открытия и сохранения файлов
- •11.2. Использование стандартного диалогового окна обзора папок
- •11.3. Использование класса System.Io.File для работы с файлами
- •If (!File.Exists(path))
- •If (!File.Exists(path))
- •If (!File.Exists(path))
- •If (!File.Exists(path))
- •If (!File.Exists(path))
- •11.4. Использование класса System.Io.Directory для работы с папками
- •If (Directory.Exists(currentDir)) // Если папка существует
- •If (Directory.Exists(sourceDir) & Directory.Exists(destDir) &
- •If (Directory.Exists(destDir)) // Если папка существует
- •11.5. Использование класса System.Io.Path для работы со строкой пути к папке или файлу
- •If (Path.HasExtension(path1))
- •If (!Path.HasExtension(path2))
- •If (!Path.IsPathRooted(path3))
- •11.6. Использование класса System.Io.FileInfo для работы с файлами
- •If (!fi1.Exists)
- •11.7. Использование класса System.Io.DirectoryInfo для работы с файлами и папками
- •If (cd.Exists) // Если заданная папка существует...
- •If (sd.Exists & dd.Exists & !md.Exists)
- •If (dd.Exists) // Если папка существует
- •11.8. Использование класса System.Io.DriveInfo для работы с дисками
- •11.9. Использование класса System.Io.FileStream для работы с файлами
- •If (fs.CanRead && fs.CanWrite)
- •11.10. Использование классов System.Io.StreamReader и System.Io.StreamWriter для работы с файлами
11.4. Использование класса System.Io.Directory для работы с папками
(http://msdn.microsoft.com/ru-ru/library/system.io.directory.aspx)
Таблица 11.9. Основные методы класса Directory из пространства имен System.IO
Метод |
Описание |
CreateDirectory(sd); |
Создает все каталоги и подкаталоги по заданному пути (sd). |
Delete(sd); Delete(sd,c); |
Удаляет заданный каталог (sd): пустой или со всем содержимым (c = true). |
EnumerateDirectories(sd); EnumerateDirectories (sd,tp); EnumerateDirectories (sd,tp,op); |
Возвращает перечисляемую коллекцию имен каталогов, соответствующих шаблону поиска (tp) по указанному пути (sd). Возможно, поиск ведется также и в подкаталогах (op): TopDirectoryOnly – поиск только в текущем каталоге (по умолчанию); AllDirectories – поиск в текущем каталоге и во всех подкаталогах. |
EnumerateFiles(sd); EnumerateFiles(sd,tp); EnumerateFiles(sd,tp,op); |
Возвращает перечисляемую коллекцию имен файлов, соответствующих шаблону поиска (tp) по указанному пути (sd). Возможно, поиск ведется также и в подкаталогах (op): TopDirectoryOnly – поиск только в текущем каталоге (по умолчанию); AllDirectories – поиск в текущем каталоге и во всех подкаталогах. |
EnumerateFileSystemEntries (sd); EnumerateFileSystemEntries (sd,tp); EnumerateFileSystemEntries (sd,tp,op); |
Возвращает перечисляемую коллекцию имен файлов и каталогов, соответствующих шаблону поиска (tp) по указанному пути (sd). Возможно, поиск ведется также и в подкаталогах (op): TopDirectoryOnly – поиск только в текущем каталоге (по умолчанию); AllDirectories – поиск в текущем каталоге и во всех подкаталогах. |
Exists(sd); |
Определяет, существует ли заданный каталог (sd). |
GetCreationTime(sd); |
Получает дату и время создания каталога (sd). |
GetCurrentDirectory(); |
Получает текущий рабочий каталог приложения. |
GetDirectories(sd); GetDirectories(sd,tp); GetDirectories(sd,tp,op); |
Получает коллекцию имен подкаталогов (включая их пути), соответствующих шаблону поиска (tp) в указанном каталоге (sd), а при необходимости и в подкаталогах (op): TopDirectoryOnly – поиск только в текущем каталоге (по умолчанию); AllDirectories – поиск в текущем каталоге и во всех подкаталогах. |
GetDirectoryRoot(sd); |
Возвращает для заданного пути сведения о томе и корневом каталоге по отдельности или сразу. |
GetFiles(sd); GetFiles(sd,tp); GetFiles(sd,tp,op); |
Возвращает коллекцию имен файлов (включая их пути), соответствующих шаблону поиска (tp) в указанном ка-талоге (sd), а при необходимости и в подкаталогах (op): TopDirectoryOnly – поиск только в текущем каталоге (по умолчанию); AllDirectories – поиск в текущем каталоге и во всех подкаталогах. |
GetFileSystemEntries(sd); GetFileSystemEntries (sd,tp); GetFileSystemEntries (sd,tp,op); |
Возвращает коллекцию имен файлов икаталогов (включая их пути), соответствующих шаблону поиска (tp) в указанном каталоге (sd), а при необходимости и в подкаталогах (op): TopDirectoryOnly – поиск только в текущем каталоге (по умолчанию); AllDirectories – поиск в текущем каталоге и во всех подкаталогах. |
GetLastAccessTime(sd); |
Возвращает время и дату последнего обращения к указанному файлу или каталогу (sd). |
GetLastWriteTime(sd); |
Возвращает время и дату последней операции записи в указанный файл или каталог (sd). |
GetLogicalDrives(); |
Извлекает имена логических устройств данного компьютера в формате "<имя устройства>:\". |
GetParent(sd); |
Извлекает родительский каталог, на который указывает абсолютный или относительный путь (sd). |
Move(sd1,sd2); |
Перемещает файл или все содержимое каталога (sd1) в новое местоположение (sd2). |
SetCreationTime(sd,dt); |
Устанавливает дату и время (dt) создания заданного файла или каталога (sd). |
SetCurrentDirectory(sd); |
Устанавливает заданный каталог (sd) в качестве текущего рабочего каталога приложения. |
SetLastAccessTime(sd,dt); |
Устанавливает время и дату (dt) последнего обращения к заданному файлу или каталогу (sd). |
SetLastWriteTime(sd,dt); |
Устанавливает дату и время (dt) последней записи в файл или каталог (sd). |
Пример 11.9. Использование методов Exists, CreateDirectory, GetDirectories, GetFiles, Move, Delete класса Directory для определения факта существования папок, создания, перемещения и удаления папок, а также вывода содержимого папки и подсчет папок и файлов в ней.
using System;
using System.IO;
class TestDir
{ static void Main(string[] args)
{ string currentDir = @"c:\temp";
string sourceDir = currentDir + @"\Source";
string destDir = currentDir + @"\Destination";
string moveDir = destDir + @"\Source";