Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСиСП ЛР №6.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
248.83 Кб
Скачать

Класс File

Класс File предназначен для работа с файлами. Он содержит статические методы, котроые позволяют создавать, удалять, переименовывать и делать другие действия с файлами. Для этого класса существует парный класс FileInfo, содержащий аналогичные методы экземпляра класса.

Вот основные методы класса File (все они, разумеется, статические):

» Create – создание файла.

» Exists – проверка существования файла.

» Delete – удалениие файла.

» Move – переименование и перемещение файла.

» Copy – копирование файла.

А вот пример, демонстрирующий применение этих методов:

using System;

// Подключаем необходимое пространство имен.

using System.IO;

namespace contest

{

class Test

{

public static void Main()

{

// Создаем файл.

File.Create("C:\\0.txt");

// Проверка существования файла.

if(File.Exists("C:\\1.txt"))

{

// Удаление файла.

File.Delete("C:\\1.txt");

}

// Переименование файла a.txt в b.txt.

File.Move("C:\\a.txt", "C:\\b.txt");

// Перемещение файла.

File.Move("C:\\c.txt", "D:\\c.txt");

// Копирование файла.

File.Copy("D:\\z.txt", "D:\\x.txt");

}

}

}

Обратите внимание, что и для перемещения, и для переименования файла мы используем один и тот же статичесикй метод Move (так как по сути это одна и та же операция).

Класс FileSystemInfo

Класс FileSystemInfo является предком для классов DirectoryInfo и FileInfo. Именно поэтому мы и рассмотрим этот класс прежде рассматрения классов DirectoryInfo и FileInfo.

Класс FileSystemInfo содержит ряд свойств, которые позврляют получить общие характеристики файла или папки – например, время создания, различные атрибуты (только для чтения, скрытый и т. п.).

Вот наиболее важные методы свойства и методы этого класса (все эти свойства и методы применимы как к файлам, так и к папкам):

» Delete – метод для удаления.

» Refresh – метод для обновления информации о файле или папке (вызывается, например, перед получением атрибутов).

» CreationTime – читает или задает время создания.

» LastAccessTime – читает или задает время последнего доступа.

» LastWriteTime – читает или задает время последней записи.

» Attributes – читает или задает атрибуты (скрытый, сжатый, системный, временный, только для чтения и др.). Один из атрибутов (а именно Directory) позволяет выяснить, не является ли объект папкой.

» FullName – читает полное имя (диск, папки, подпапки и т. д.).

» Name – имя файла или папки.

» Extension – расширение.

» Exists – существование файла или папки.

Класс DirectoryInfo

Класс DirectoryInfo предназначен для работы с папками. Он позволяет делать стандартные операции – перемещение, удаление, создание папок и подпапок и др.. Кроме того, методы этого класса позволяют получить все подкаталоги и файлы указанной папки. В отличие от класса Directory, методы класса DirectoryInfo – это методы экземпляра (т. е. они не статические).

Вот пример использования этого класса:

// Создание объекта.

DirectoryInfo di = new DirectoryInfo("c:\\tmp\\tmp2");

// Создаем папку.

di.Create();

// Вывод информации о папке.

String s = "";

s += "Full nane: " + di.FullName + "\n";

s += "Root: " + di.Root + "\n";

s += "Name: " + di.Name;

MessageBox.Show(s);

// Перемещение папки.

di.MoveTo("c:\\tmp\\tmp3");

// Создание подпапок.

di.CreateSubdirectory("subdir1");

di.CreateSubdirectory("subdir2");

// Получение имен всех подпапок.

DirectoryInfo [] ds = di.GetDirectories();

foreach(DirectoryInfo d in ds)

{

MessageBox.Show(d.Name);

}

// Удаление папки и всех подпапок.

di.Delete(true);

Обратите внимание, что отдельного метода для переименования нет – для переименования мы используем метод MoveTo, в качестве параметра которого мы указываем новое имя.

Также обратите внимание, что в методе Delete для удаления вместе с папкой всех ее подпапок мы должны указать параметр true. Если же мы укажем параметр false или ничего не укажем, то возникнет соответствующее исключение.