Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
- Название:ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2007
- Город:Москва • Санкт-Петербург • Киев
- ISBN:ISBN 5-8459-1124-9
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание краткое содержание
В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML. Книга содержит множество примеров программного кода, призванного помочь читателю в освоении предлагаемого материала. Программный код примеров можно загрузить с Web-сайта издательства.
ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Работа с классом FileInfo
Как показывает пример MyDirectoryApp, класс FileInfo позволяет получить подробные сведения о файлах, имеющихся на вашем жестком диске (время создания, размер, атрибуты и т.д.), а также помогает создавать, копировать, перемещать и уничтожать файлы. Вдобавок к набору функциональных возможностей, унаследованных от FileSystemInfо, класс FileInfo имеет свои уникальные члены, и некоторые из них описаны в табл. 16.4.
Таблица 16.4.Наиболее важные элементы FileInfo
Член | Описание |
---|---|
AppendText() | Создает тип StreamWriter (будет описан позже) для добавления текста в файл |
CopyTo() | Копирует существующий файл в новый файл |
Create() | Создает новый файл и возвращает тип FileStream (будет описан позже) для взаимодействия с созданным файлом |
CreateText() | Создает тип StreamWriter, который записывает новый текстовый файл |
Delete() | Удаляет файл, к которому привязан экземпляр FileInfo |
Directory | Получает экземпляр каталога родителя |
DirectoryName | Получает полный путь к каталогу родителя |
Length | Получает размер текущего файла или каталога |
MoveTo() | Перемещает указанный файл в новое место, имеет опцию для указания нового имени файла |
Name | Получает имя файла |
Open() | Открывает файл с заданными возможностями чтения/записи и совместного доступа |
OpenRead() | Создает FileStream с доступом только для чтения |
OpenText() | Создает тип StreamReader (будет описан позже) для чтения из существующего текстового файла |
OpenWrite() | Создает FileStream с доступом только для записи |
Важно понимать, что большинство членов класса FileInfo возвращает специальный объект ввода-вывода (FileStream, StreamWriter и т.д.), который позволит начать чтение или запись данных в соответствующем файле в самых разных форматах. Мы исследуем указанные типы чуть позже, а пока что давайте рассмотрим различные способы получения дескриптора файла с помощью типа класса FileInfo.
Метод FileInfо.Create()
Первая возможность создания дескриптора файла обеспечивается методом FileInfo.Create().
public class Program {
static void Main(string[] args) {
// Создание нового файла на диске C.
FileInfo f = new FileInfо(@"C:\Test.dat");
FileStream fs = f.Create();
// Использование объекта FileStream.…
// Закрытие файлового потока.
fs.Close();
}
}
Обратите внимание на то, что метод FileInfo.Create() возвращает тип FileStream, который, в свою очередь, предлагает набор синхронных и асинхронных операций записи/чтения для соответствующего файла. Объект FileStream, возвращенный методом FileInfo.Create(), обеспечивает полный доступ чтения/записи всем пользователям.
Метод FileInfo.Open()
Метод FileInfо.Open() можно использовать для того, чтобы открывать существующие файлы и создавать новые с более точными характеристиками, чем при использовании FileInfo.Create(). В результате вызова Open() возвращается объект FileStream. Рассмотрите следующий пример.
static void Main(string[] args) {
…
// Создание нового файла с помощью FileInfo.Open().
FileInfo f2 = new FileInfo(@"C:\Test2.dat");
FileStream fs2 = f2.Open(FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
// Использование объекта FileStream.…
// Закрытие файлового потока.
fs2.Close();
}
Эта версия перегруженного метода Open() требует указания трех параметров. Первый параметр задает общий вид запроса ввода-вывода (создание нового файла, открытие существующего файла, добавление данных в файл и т.п.) с помощью перечня FileMode.
public enum FileMode {
// Дает операционной системе указание создать новый файл.
// Если файл уже существует, генерируется System.IO.IOException.
CreateNew,
// Дает операционной системе указание создать новый файл,
// Если файл уже существует, он будет переписан.
Create,
Open,
// Дает операционной системе указание открыть файл,
// если он существует, иначе следует создать новый файл.
OpenOrCreate,
Truncate,
Append
}
Второй параметр, значение из перечня FileAccess, используется для определения характеристик чтения/записи в соответствующем потоке.
public enum FileAccess {
Read,
Write,
ReadWrite
}
Наконец, третий параметр, FileShare, указывает возможности совместного использования файла другими дескрипторами файла. Вот как выглядит соответствующий перечень.
public enum FileShare {
None,
Read,
Write,
ReadWrite
}
Методы FileInfo.OpenRead() и FileInfo.OpenWrite()
Хотя метод FileInfo.Open() и обладает очень гибкими возможностями получения дескриптора файла, класс FileInfo также предлагает члены с именами OpenRead() и OpenWrite(). Как вы можете догадаться, эти методы возвращают должным образом сконфигурированный только для чтения или только для записи тип FileStream, без необходимости указания соответствующих значений перечней.
Подобно FileInfo.Create() и FileInfo.Open(), методы OpenRead() и OpenWrite() возвращают объект FileStream.
static void Main(string[] args) {
…
// Получение объекта FileStream с доступом только для чтения.
FileInfo f3 = new FileInfo(@"C:\Test3.dat");
FileStream readOnlyStream = f3.OpenRead();
// Использование объекта FileStream…
readOnlyStream.Close();
// Получение объекта FileStream с доступом только для записи.
FileInfо f4 = new FileInfo(@"C:\Test4.dat");
FileStream writeOnlyStream = f4.OpenWrite();
// Использование объекта FileStream…
writeOnlyStream.Close();
}
Метод FileInfo.OpenText()
Другим членом типа FileInfo, связанным с открытием файлов, является OpenText(). В отличие от Create(), Open(), OpenRead() и OpenWrite(), метод OpenText() возвращает экземпляр типа StreamReader, а не типа FileStream.
static void Main(string[] args) {
…
// Получение объекта StreamReader.
FileInfo f5 = new FileInfо(@"C:\boot.ini");
StreamReader sreader = f5.OpenText();
// Использование объекта StreamReader.…
sreader.Close();
}
Чуть позже вы увидите, что тип StreamReader обеспечивает возможность чтения символьных данных из соответствующего файла.
Методы FileInfo.CreateText() и FileInfo.AppendText()
И последними интересующими нас на этот момент методами будут CreateText() и AppendText(), которые возвращают ссылку на StreamWriter, как показано ниже.
static void Main(string[] args) {
…
FileInfo f6 = new FileInfo(@"C:\Test5.txt");
StreamWriter swriter = f6.CreateText();
// Использование объекта StreamWriter….
swriter.Close();
FileInfo f7 = new FileInfo(@"C:\FinalTest.txt");
StreamWriter swriterAppend = f7.AppendText();
// Использование объекта StreamWriter…
Интервал:
Закладка: