Ряд методов для работы с файлами определен также в классе Filelnfo. Этот класс отличается от класса File одним, очень важным преимуществом: для операций над файлами он предоставляет методы экземпляра и свойства, а не статические методы. Поэтому для выполнения нескольких операций над одним и тем же файлом лучше воспользоваться классом Filelnfo.
Копирование файлов с помощью метода Сору ()
Ранее в этой главе демонстрировался пример программы, в которой файл копировался вручную путем чтения байтов из одного файла и записи в другой. И хотя задача копирования файлов не представляет особых трудностей, ее можно полностью автоматизировать с помощью метода Сору (), определенного в классе File. Ниже представлены две формы его объявления.
static void Copy (string
МетодCopy() копирует файл, на который указывает
В приведенном ниже примере программы метод Сору () применяется для копирования файла. Имена исходного и целевого файлов указываются в командной строке. Обратите внимание, насколько эта программа короче демонстрировавшейся ранее. Кроме того, она более эффективна.
/* Скопировать файл, используя метод 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 ()