русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Практикум


Дата добавления: 2013-12-23; просмотров: 774; Нарушение авторских прав


Класс File

Класс Filelnfo

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

Член Описание
AppendText() Создает объект StreamWriter для добавления текста к файлу
CopyTo() Копирует уже существующий файл в новый файл
Create() Создает новый файл и возвращает объект FileStream для взаимодействия с этим файлом
CreateText() Создает объект StreamWriter для записи текстовых данных в новый файл
Delete() Удаляет файл, которому соответствует объект FileInfo
Directory Возвращает каталог, в котором расположен данный файл
DirectoryName Возвращает полный путь к данному файлу в файловой системе
Length Возвращает размер файла
MoveTo() Перемещает файл в указанное пользователем место (этот метод позволяет одновременно переименовать данный файл)
Name Позволяет получить имя файла
Ореn() Открывает файл с указанными пользователем правами доступа на чтение, запись или совместное использование с другими пользователями
OpenRead() Создает объект FileStream, доступный только для чтения
OpenText() Создает объект StreamReader (о нем также будет рассказано ниже), который позволяет считывать информацию из существующего текстового файла
OpenWrite() Создает объект FileStream, доступный для чтения и записи

Как мы видим, большинство методов FileInfo возвращает объекты (FIleStream, StreamWriter, StreamReader и т. п.), которые позволяют различным образом взаимодействовать с файлом, например, производить чтение или запись в него. Приемы работы с данными потоками нам уже известны. Поэтому рассмотрим другие возможности класса FileInfo.



using System;using System.Text;using System.IO; //для работы с файловым вводом-выводомusing System.Text.RegularExpressions; namespace MyProgram{ class Program { static void Main() { //создаем новый файл и связываем с ним строковый поток FileInfo f = new FileInfo("text.txt"); StreamWriter fOut = new StreamWriter(f.Create()); //записываем в файл данные и закрываем строковый поток,// при этом связь с физическим файлом для f не рвется fOut.WriteLine("ОДИН ДВА ТРИ..."); fOut.Close(); //получаем информацию о файле Console.WriteLine("*******"+f.Name File Inf+"**************"); Console.WriteLine("File size: {0}", f.Length); Console.WriteLine("Creation: {0}", f.CreationTime); Console.WriteLine("Attributes: {0}", f.Attributes.ToString()); } }}

Замечание. Еще раз удалите с диска d измененную папку prim, затем скопирует ее исходную версию из раздела 12 данного электронного учебника.

Рассмотрим следующий пример:

static void Main() { FileInfo f = new FileInfo(@"d:\prim\letter\letter1.txt"); f.CopyTo(@"d:\prim\bmp\letter.txt"); Directory.CreateDirectory(@"d:\prim\archives"); f.MoveTo(@"d:\prim\archives\letter1.txt"); f = new FileInfo(@"d:\prim\letter\letter2.txt"); f.Delete(); }

Задание. Посмотрите, что произойдет, если запустить эту программу еще раз. Дайте этому объяснение.

Рассмотрим еще один пример по удалению файлов:

static void printFile( FileInfo file){ Console.WriteLine("***** "+file.Name+" *****"); Console.WriteLine("File size: {0}", file.Length); Console.WriteLine("Creation: {0}", file.CreationTime); Console.WriteLine("Attributes: {0}", file.Attributes.ToString());} static void Main(string[] args){ DirectoryInfo dir = new DirectoryInfo(@"d:\prim\bmp"); FileInfo[] files = dir.GetFiles(); if (files.Length!=0) { Console.WriteLine("Найдено {0} файла", files.Length); foreach (FileInfo f in files) { printFile(f); f.Delete(); } Console.WriteLine("\nТеперь в каталоге содержится {0} файлов и можно его удалить", dir.GetFiles().Length); dir.Delete(); }}

Доступ к физическим файлам можно получать и через статические методы класса File. Большинство методов объекта Fileinfo представляют в этом смысле зеркальное отражение методов объекта File.

Замечание. В последний раз удалите с диска d измененную папку prim, затем скопирует ее исходную версию из раздела 12данного электронного учебника.

static void Main(string[] args){ File.Copy(@"d:\prim\letter\letter1.txt",@"d:\prim\bmp\letter1.txt"); Directory.CreateDirectory(@"d:\prim\archives"); File.Move(@"d:\prim\letter\letter1.txt",@"d:\prim\archives\letter1.txt"); File.Delete(@"d:\prim\letter\letter2.txt"); Directory.Delete(@"d:\prim\letter");}

Имеет прямой смысл использовать статический класс File, когда требуется осуществить единственный вызов метода на объект. В этом случае вызов будет выполнен быстрее, поскольку .NET Framework не придется проходить через процедуру создания экземпляра нового объекта с последующим вызовом метода. Однако если приложение осуществляет несколько операций над файлом, то более разумным представляется создать экземпляр объекта FileInfo и использовать его методы. Это позволит сэкономить определенное время, поскольку объект будет заранее настроен на нужный файл в файловой системе, в то время как статическому классу придется каждый раз осуществлять его поиск заново.

Аналогичное правило действует и при выборе между классами Directory и DirectoryInfo.

Программным путем в папке С:\temp создайте папки К1 и К2.

1. В папке К1 создайте файл t1.txt, в который запишите следующий текст :Иванов Иван Иванович, 1965 года рождения, место жительства г. Саратов.

2. Создайте файл t2.txt, в который запишите следующий текст: Петров Сергей Федорович, 1966 года рождения, место жительства г.Энгельс.

3. В папке К2 создайте файл t3.txt, в который перепишите вначале текст из файла t1.txt, а затем из t2.txt

4. Выведите развернутую информацию о созданных файлах.

5. Файл t2.txt перенесите в папку K2

6. Файл t1.txt скопируйте в папку K2

7. Папку K2 переименуйте в ALL, а папку K1 удалите

8. Вывести полную информацию о файлах папки All

Самостоятельная работа

Используя дополнительную литературу и Интернет, рассмотрите способы организации асинхронного ввода-вывода данных


Лекция 13. Классы



<== предыдущая лекция | следующая лекция ==>
Практикум | Конструкторы экземпляра


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.006 сек.