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

Основы c#. Урок 52. Класс 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 (так как по сути это одна и та же операция).

Основы c#. Урок 53. Класс FileSystemInfo

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

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

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

  • Delete - метод для удаления.

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

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

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

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

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

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

  • Name - имя файла или папки.

  • Extension - расширение.

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

Примеры использования этих методов и свойств иы рассмотрим на следующих уроках для потомков класса FileSystemInfo - т. е. для классов DirectoryInfo и FileInfo.

Основы c#. Урок 54. Класс 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 или ничего не укажем, то возникнет соответствующее исключение.