Ряд методов для работы с файлами определен также в классе Filelnfo. Этот класс отличается от класса File одним, очень важным преимуществом: для операций над файлами он предоставляет методы экземпляра и свойства, а не статические методы. Поэтому для выполнения нескольких операций над одним и тем же файлом лучше воспользоваться классом Filelnfo.

Копирование файлов с помощью метода Сору ()

Ранее в этой главе демонстрировался пример программы, в которой файл копировался вручную путем чтения байтов из одного файла и записи в другой. И хотя задача копирования файлов не представляет особых трудностей, ее можно полностью автоматизировать с помощью метода Сору (), определенного в классе File. Ниже представлены две формы его объявления.

static void Copy (stringимя_исходного_файла,stringимя_целевого_файла)static void Copy (stringимя_исходного_файла,stringимя_целевого_файла,booleanoverwrite)

МетодCopy() копирует файл, на который указываетимя_исходного_файла,в файл, на который указываетимя_целевого_файла.В первой форме данный метод копирует файл только в том случае, если файл, на который указываетимя_целево-го_файла,еще не существует. А во второй форме копия заменяет и перезаписывает целевой файл, если он существует и если параметрoverwri teпринимает логическое значениеtrue.Но в обоих случаям может быть сгенерировано несколько видов исключений, включаяIOExceptionиFileNotFoundException.

В приведенном ниже примере программы метод Сору () применяется для копирования файла. Имена исходного и целевого файлов указываются в командной строке. Обратите внимание, насколько эта программа короче демонстрировавшейся ранее. Кроме того, она более эффективна.

/* Скопировать файл, используя метод File.CopyO.

Чтобы воспользоваться этой программой, укажите имя исходного и целевого файлов. Например, чтобы скопировать файл FIRST.DAT в файл SECOND.DAT, введите в командной строке следующее:

CopyFile FIRST.DAT SECOND.DAT

*/

using System; using System.10;

class CopyFile {

static void Main(string[ ] args) { if (args.Length != 2)    {

Console.WriteLine("Применение: CopyFile Откуда Куда"); return;

}

// Копировать файлы, try {

File.Copy(args[0], args[l]);

} catch(IOException exc) {

Console.WriteLine("Ошибка копирования файла\п" + exc.Message);

}

}

}

^Сак видите, в этой программе не нужно создавать поток типаFileStreamили освобождать его ресурсы. Все это делается в методе Сору () автоматически. Обратите также внимание на то, что в данной программе существующий файл не перезаписывается. Поэтому если целевой файл должен быть перезаписан, то для* этой цели лучше воспользоваться второй из упоминавшихся ранее форм метода Сору ().

Применение методов Exists () и GetLastAccessTime ()

Перейти на страницу:

Похожие книги