Console.WriteLine('Применение: CopyFile Откуда Куда'); return;
}
// Копировать файлы, try {
File.Copy(args[0], args[l]);
} catch(IOException exc) {
Console.WriteLine('Ошибка копирования файлап' + exc.Message);
}
}
}
^Сак видите, в этой программе не нужно создавать поток типа FileStream или освобождать его ресурсы. Все это делается в методе Сору () автоматически. Обратите также внимание на то, что в данной программе существующий файл не перезаписывается. Поэтому если целевой файл должен быть перезаписан, то для* этой цели лучше воспользоваться второй из упоминавшихся ранее форм метода Сору ().
Применение методов Exists () и GetLastAccessTime ()
С помощью методов класса File очень легко получить нужные сведения о файле. Рассмотрим два таких метода: Exists () и GetLastAccessTime (). Метод Exists () определяет, существует ли файл, а метод GetLastAccessTime () возвращает дату и время последнего доступа к файлу. Ниже приведены формы объявления обоих методов.
static bool Exists(string
static DateTime GetLastAccessTime(string
В обоих методах
DateTime описывается далее в этой книге, но метод ToString () автоматически приводит дату и время к удобочитаемому виду.) С указанием недействительных аргументов или прав доступа при вызове обоих рассматриваемых здесь методов может быть связан целый ряд исключений, но в действительности генерируется только исключение IOException.
В приведенном ниже примере программы методы Exists () и GetLastAccessTime () демонстрируются в действии. В этой программе сначала определяется, существует ли файл под названием test. txt. Если он существует, то на экран выводит время последнего доступа к нему.
// Применить методы Exists () и GetLastAccessTime() .
using System; using System.10;
class ExistsDemo { static void Main() {
if(File.Exists('test.txt'))
Console.WriteLine('Файл существует. В последний раз он был доступен ' + File.GetLastAccessTime('test.txt'));
else
Console.WriteLine('Файл не существует');
}
}
Кроме того, время создания файла можно выяснить, вызвав метод GetCreationTime (), а время последней записи в файл, вызвав метод GetLastWriteTime (). Имеются также варианты этих методов для представления данных о файле в формате всеобщего скоординированного времени (UTC). Попробуйте поэкспериментировать с ними.
Преобразование числовых строк в их внутреннее представление
Прежде чем завершить обсуждение темы ввода-вывода, рассмотрим еще один способ, который может пригодиться при чтении числовых строк. Как вам должно быть уже известно, метод WriteLineO предоставляет удобные средства для вывода различных типов данных на консоль, включая и числовые значения встроенных типов, например int или double. При этом числовые значения автоматически преобразуются методом WriteLineO в удобную для чтения текстовую форму. В то же время аналогичный метод ввода для чтения и преобразования строк с числовыми значениями в двоичный формат их внутреннего представления не предоставляется. В частности, отсутствует вариант метода Read () специально для чтения строки '100', введенной с клавиатуры, и автоматического ее преобразования в соответствующее двоичное значение, которое может быть затем сохранено в переменной типа int. Поэтому данную задачу приходится решать другими способами. И самый простой из них — воспользоваться методом Parse (), определенным для всех встроенных числовых типов данных.
Прежде всего необходимо отметить следующий важный факт: все встроенные в C# типы
