русс | укр

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

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

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

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


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

И Filelnfo.AppendTextO


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


Класс Filelnfo

Класс Directory

Классы для работы с папками и файлами

 

Для работы с файлами и папками в пространстве имен System.IO существуют следующие классы:

Directory - содержит ряд статических методов для выполнения различных операций с папками (создание, удаление, проверка существования, получение текущей папки и т. п.).

DirectoryInfo - аналогичен классу Directory, только его методы не статические - для использования этого класса надо создать его экземпляр (параметром для конструктора служит имя папки).

File - содержит ряд статических методов для выполнения различных операций с файлами (создание, удаление, копирование и т. п.).

FileInfo - аналогичен классу File, только его методы не статические - для использования этого класса надо создать его экземпляр (параметром для конструктора служит имя файла).

Классы Directory и File яляются непосредственными потомками класса Object, а классы DirectoryInfo и FileInfo - потомками абстрактного класса FileSystemInfo.

 

Класс Directory предназначен для работы с папками. Этот класс содержит статические методы для работы с папками (в отличие от класса DirectoryInfo, который содержит аналогичные методы, применяемые для экзампляра класса).

Вот основные методы класса Directory (все они статические):

CreateDirectory - создает папку с указанным именем.

Exists - проверяет существование папки с указанным именем.

Delete - удаляет папку с указанным именем.

Move - перемещает или переименовывает папку с указанным именем.

А вот пример их употребления:

 

using System;

//Подключаем необходимое пространство имен.

using System.IO;

namespace constest{

...

class Class1 {

...

static void Main(string[] args) {

Directory.CreateDirectory("C:\\temp");



if(Directory.Exists("C:\\temp1")) {

Console.WriteLine("Папка \"temp1\" существует");

}

else {

Console.WriteLine("Папка \"temp1\" не существует");

}

if(Directory.Exists("C:\\temp")) {

Console.WriteLine("Папка \"temp\" существует");

}

else {

Console.WriteLine("Папка \"temp\" не существует");

}

//Перемещение папки.

Directory.Move( "C:\\temp", "C:\\temp2");

//Удаление папки.

Directory.Delete( "C:\\temp2");

}}}

 

Обратите внимание, что метод Move можно использовать не только для перемещения, но и для переименования папки (что мы, фактически, в нашем примере и делаем). Для этого папка, задаваемая первым параметром (т. е. та, которую перемещаем) должна находиться на том же уровне, что и папка, задаваемая вторым параметром (т. е. куда перемещаем).

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

 

Таблица .Наиболее важные члены класса Filelnfo

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

 

 

public class FileManipulator {

public static int Main(string[] args){

// Создаем новый файл в корневой каталоге диска С:

Filelnfo f = new FileInfo(@"C:\Test.txt");

FileStream fs = f.Create();

// Выводим основную информацию о созданной нами файле

Console.WriteLine("Creation: {0}", f.CreationTime);

Console.WriteLine(“Full Name: {0}", f.FullName);

Console.WriteLine(“Full atts: {0}", f.Attributes.ToString())

Console.Write("Press a key to delete file");

Console.Read();

// Закрываем FileStream и удаляем

f.Close();

f.Delete();

return 0;

}}

Обратите внимание, что метод Create() возвращает объект FileStream, который позволяет взаимодействовать с файлом. После запуска нашего приложения мы сможем увидеть созданный файл (до его удаления) в корневом каталоге диска С.

Использование метода Filelnfo.Open()

Метод Filelnfo.Open() может быть использован как для открытия уже существующего файла, так и для создания нового с большим количеством возможностей, чем метод Filelnfo.Create(). Вот пример использования этого метода:

// Открываем (или создаем) файл для чтения и записи, но без возможности совместного использования и сохраняем указатель на этот файл в объекте FileStream

 

Filelnfo f2 = new FileInfo((@"C:\HelloThere.ini");

FileStream s = f2.Open(FileMode.OpenOrCreate. FileAccess.ReadWrite, FileShare.None);

fs.Close();

f2.Delete());

 

Эта версия перегруженного метода Open() принимает три параметра. Первый из них определяет вид запроса на открытие файла (создание нового файла, открытие существующего файла, добавление к существующему файлу и т. п.). Для него используются значения из перечисления FileMode.

 

Таблица.Значения перечисления FileMode

Значение Описание
Append Открывает файл, если он существует, и ищет конец этого файла. Если указанный файл не существует, создается новый файл. Обратите внимание, что режим FileMode-Access может быть использован только совместно с доступом типа FileAccess.Write
Create Указывает, что операционная система должна создать новый файл. Будьте осторожны — если в каталоге уже существует файл с таким же именем, он будет перезаписан!
CreateNew Также определяет создание нового файла, но если файл с тем же именем уже существует в каталоге, будет сгенерировано исключение IOException
Open Определяет, что операционная система должна открыть существующий файл
OpenOrCreate Определяет, что операционная система должна открыть файл, если он существует. Если же нет, то файл с таким названием должен быть создан
Truncate Определяет, что операционная система должна открыть существующий файл. После открытия он должен быть обрезан до нулевой длины

 

Второй параметр определяет тип доступа к файлу как к потоку байтов. Для него используются параметры из перечисления FileAccess

 

Таблица .Значения перечисления FileAccess

Значение Описание
Read Файл будет открыт только для чтения
ReadWrite Файл будет открыт и для чтения, и для записи
Write Файл будет открыт только для записи

 

Третий параметр определяет возможности совместного доступа к открытому файлу. Набор значений для него — в перечислении FileShare.

 

Таблица .Значения перечисления FileShare

Значение Описание
None Совместное использование открытого файла запрещено. На любой запрос на открытие данного файла будет возвращено сообщение об ошибке
Read Позволяет открывать файл одновременно и другим пользователям, но толькона чтение. Если этот флаг не установлен, на любые запросы на открытие данного файла на чтение будет возвращаться сообщение об ошибке
ReadWrite Позволяет открывать файл одновременно и другим пользователям на чтение и запись
Write Позволяет открывать файл одновременно и другим пользователям на запись

 

Методы FileInfo.OpenRead() и Filelnfo.OpenWrite()

Помимо метода Ореn(), в Filelnfo предусмотрены также методы OpenRead() и OpenWrite().

Как вы, наверное, уже догадались, эти методы возвращают объекты FileStream, открытые только для чтения или только для записи. Например:

 

// Получаем объект FileStream с доступен только для чтения

Filelnfo f3 = new FileInfo(@"C:\boot.in1"):

FileStream readOnlyStream – f3.OpenRead();

readOnlyStream.Close();

// А теперь - объект FileStream с доступом только для записи

Filelnfo f4 = new FileInfo(@"C:\config.sys"):

FileStream writeOnlyStream = f4.OpenWrite():

wrlteOnlyStream.Close();

 

Методы Filelnfo.OpenText(), Filelnfo.CreateText()

Еще один метод класса Filelnfo, позволяющий открывать файл для чтения, — метод ОреnТехt(). Его главное отличие от Open(), OpenRead(), OpenWrite() заключается в том, что этот метод возвращает вместо FileStream объект StreamReader.

 

// Получаем объект StreamReader

Filelnfo f5 = new FileInfo(@"C:\bootlog.txt"):

StreamReader sreader = f5.OpenText();

sreader.Close();

 

Последние два метода, которые представляют для нас интерес, — метод CreateText () и AppendText(). Оба эти метода возвращают объект StreamWriter:

 

// Получаем объекты StreamWriter

Filelnfo f6 = new FileInfo(@"D:\AnotnerTest.txt");

f6.Open(FileMode.Create, FileAccess.ReadWrite);

StreamWriter writer = f6.CreateText();

writer.Close();

Filelnfo f7 = new FileInfo(@"D:\FinalTest.txt");

f7.Open(FileMode.Create, Fi1eAccess.ReadWrite);

StreamWriter swriterAppend = f7.AppendText();

swriterAppend.Close();

 

К этому моменту мы с вами уже научились получать при помощи Filelnfo объекты FileStream, StreamReader и StreamWriten.



<== предыдущая лекция | следующая лекция ==>
Процедуры и массивы | Формулы


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


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

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

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


 


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

 
 

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

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