
- •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 для работы с файлами
If (Path.HasExtension(path1))
Console.WriteLine("{0} имеет расширение.", path1);
If (!Path.HasExtension(path2))
Console.WriteLine("{0} не имеет расширения.", path2);
If (!Path.IsPathRooted(path3))
Console.WriteLine("Строка {0} не содержит информации о " +
"корне.", path3);
Console.WriteLine("Полный путь к {0} - {1}.", path3,
Path.GetFullPath(path3));
Console.WriteLine("{0} - местоположение временных файлов.",
Path.GetTempPath());
Console.WriteLine("Файл {0} доступен для использования.",
Path.GetTempFileName());
Console.ReadLine();
}
}
/* Вывод:
В пути 'c:\temp\MyTest.txt' расширение изменено на
'c:\temp\MyTest.dat'.
Файл 'MyTest.txt' находится в папке 'c:\temp'.
c:\temp\MyTest.txt имеет расширение.
c:\temp\MyTest не имеет расширения.
Строка temp не содержит информации о корне.
Полный путь к temp - C:\Documents and Settings\Guest\Local
Settings\Application Data\Temporary Projects\ConsoleApplication1
\bin\Debug\temp.
C:\Documents and Settings\Guest\Local Settings\Temp\ -
местоположение временных файлов.
Файл C:\Documents and Settings\Guest\Local Settings\Temp\
tmp3D.tmp доступен для использования.
*/
11.6. Использование класса System.Io.FileInfo для работы с файлами
(http://msdn.microsoft.com/ru-ru/library/system.io.fileinfo.aspx)
Таблица 11.11. Основные поля, свойства и методы класса FileInfo из пространства имен System.IO
Имя |
Описание |
Поля |
|
FullPath |
Представляет полный путь к каталогу или файлу. |
OriginalPath |
Первоначально заданный пользователем относительный или абсолютный путь. |
Свойства |
|
Attributes |
Получает или задает атрибуты для текущего файла или каталога. Значение этого свойства представляет сочетание флагов атрибутов файла (из перечисления FileAttributes, таблица 11.7). |
CreationTime |
Получает или задает время создания текущего файла или каталога. |
Directory |
Получает экземпляр родительского каталога файла. |
DirectoryName |
Получает строку, представляющую полный путь к каталогу. |
Exists |
Получает значение (типа bool), показывающее, существует ли файл (true) или нет (false). |
Extension |
Получает строку, содержащую расширение файла. |
FullName |
Получает строку, содержащую полный путь к каталогу или файлу. |
IsReadOnly |
Возвращает или задает значение (типа bool), определяющее, является ли текущий файл доступным только для чтения (true) или нет (false). |
LastAccessTime |
Получает или задает время последнего доступа к текущему файлу или каталогу. |
LastWriteTime |
Получает или задает время последней операции записи в текущий файл или каталог. |
Length |
Получает размер текущего файла в байтах. |
Name |
Получает строку, содержащую имя и расширение файла. |
Методы |
|
AppendText(sf); |
Добавляет в существующий файл (sf, объект StreamWriter) текст в кодировке UTF-8. |
CopyTo(sf2); CopyTo(sf2,w); |
Копирует существующий текущий файл (sf1) в новый файл (sf2) с возможностью перезаписи (w) или без нее. При возможной перезаписи аргумент w равен true, если конечный файл можно перезаписать, в противном случае – false. |
Create(); |
Создает новый файл (объект FileStream). При этом по умолча-нию используются следующие значения перечислений (таблица 11.8): FileMode.Create, FileAccess.ReadWrite и FileShare.None . |
CreateText(); |
Создает файл (объект StreamWriter) для записи текста в кодировке UTF-8. |
Delete(); |
Удаляет файл без возможности восстановления. Если указанный файл не существует, исключение не создается. |
MoveTo(sf2); |
Перемещает заданный текущий файл в новое место (sf2) и разрешает его переименование. |
Open(md); Open(md,access); Open(md,access,shr); |
Открывает файл (объект FileStream). Аргументы определяют: md – режим доступа к файлу (перечисление FileMode, таблица 11.8); access – тип доступа к файлу (перечисление FileAccess, таблица 11.8); shr – тип разрешения доступа к файлу другим процессам (перечисление FileShare, таблица 11.8). |
OpenRead(); |
Открывает для чтения существующий файл (объект FileStream). При этом по умолчанию используются следующие значения перечислений (таблица 11.8): FileMode.Open , FileAccess.Read и FileShare.Read . |
OpenText(); |
Открывает для чтения существующий файл (объект StreamWriter), содержащий текст в кодировке UTF-8. |
OpenWrite(); |
Открывает для записи существующий файл (объект FileStream) или создает новый. При этом по умолчанию используются следующие значения перечислений (таблица 11.8): FileMode.OpenOrCreate , FileAccess.Write и FileShare.None . |
Refresh(); |
Обновляет состояние объекта. Этот метод рекомендуется вызывать перед попыткой получения сведений об атрибутах, иначе сведения могут оказаться устаревшими. |
Replace(sf1,sf2); |
Заменяет содержимое одного файла (sf1) содержимым текущего файла, удаляя исходный файл (sf1) и создавая резервную копию (sf2) замененного файла. |
ToString(); |
Возвращает строку, содержащую путь. |
Пример 11.11. Использование методов Exists, CreateText, OpenText, CopyTo, Delete класса FileInfo для создания и открытия текстового файла, записи в него, затем для чтения из него, и, наконец, копирования и удаления файла.
using System;
using System.IO;
class TestFileInfo
{ public static void Main()
{ string path = @"c:\temp\Test.txt";
FileInfo fi1 = new FileInfo(path);
// Создание файла для записи, если он не существовал.