На этом шаге мы рассмотрим пример компирования файла с использованием метода CopyTo().
В рассмотренной на предыдущем шаге программе мы проиллюстрировали процесс побайтового считывания информации из файла и записи данных в файл. Что касается собственно задачи копирования файлов, то ее можно было реализовать проще, воспользовавшись методом CopyTo(). Соответствующая программа представлена в примере ниже.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace pr294_1 { // Главный класс: class Program { // Главный метод: static void Main() { // Название и полный путь для файлов: string f = "bear.jpg"; string F = "animal.jpg"; try { // Создание потока для считывания файла: FileStream fin = new FileStream(f, FileMode.Open); Console.WriteLine("Исходный файл: \"{0}\"", f); // Создание потока для записи в файл: FileStream fout = new FileStream(F, FileMode.Create); Console.WriteLine("Hoвый файл: \"{0}\"", F); // Копирование файла: fin.CopyTo(fout); // Закрываются потоки: fout.Close(); fin.Close(); } catch(Exception e) { Console.WriteLine("Произошла ошибка!"); Console.WriteLine(e.Message); // Задержка: Console.ReadLine(); return; // Завершение выполнения программы } Console.WriteLine("Копирование успешно завершено"); // Задержка: Console.ReadLine(); } } }
Результат выполнения программы такой же, как и в программе предыдущего шага. В данном случае в программе, после создания потоков для считывания и записи данных, из объекта потока fin вызывается метод CopyTo(), а аргументом методу передается объект потока fout. В результате выполняется копирование файла, связанного с потоком fin, в файл, связанный с потоком fout.
На следующем шаге мы рассмотрим работу с файлами через символьные потоки.