- •Атрибуты в среде .Net и языке c#.
- •Метаданные
- •Понятие атрибутов
- •Предопределенные и собственные атрибуты
- •Потребители атрибутов
- •Применение атрибутов
- •Сокращенное именование атрибутов
- •Создание собственных атрибутов:
- •Применение собственных атрибутов:
- •Ограничение использования атрибутов:
- •Атрибуты уровня сборки и модуля:
- •Рефлексия атрибутов:
- •Выводы:
- •Язык xml. Классы платформы .Net для работы с xml-данными.
- •Синтаксис xml
- •Работа с xml при помощи System.Xml
- •Работа с xml при помощи linq to xml
- •Выводы:
- •Потоковый ввод-вывод. Файлы. Работа с файлами и каталогами. Пространство имен System.Io
- •Классы Directory (DirectoryInfo) и File (FileInfo) Некоторые общие свойства классов DirectoryInfo и FileInfo:
- •Дополнительные возможности класса DirectoryInfo
- •Дополнительные возможности класса FileInfo
- •Дополнительные члены File
- •Потоковый ввод-вывод
- •Работа с классом FileStream
- •Работа с классами StreamWriter и StreamReader
- •Классы StringWriter и StringReader
- •Работа с классами BinaryWriter и BinaryReader
- •Выводы:
- •Сериализация. Атрибуты. Стандартные форматы сериализации. Понятие сериализации объектов
- •Роль графов объектов
- •Конфигурирование объектов для сериализации
- •Общедоступные поля, приватные поля и общедоступные свойства
- •Стандартные форматеры сериализации
- •Настройка сериализации с использованием атрибутов
- •Выводы:
- •Понятие бд и субд. Язык sql. Ado.Net как средство доступа из c# к субд. Понятие бд
- •Понятие субд
- •Обзор синтаксиса
- •Подключенный уровень
- •Автономный уровень
- •Основные свойства класса DataSet
- •Основные методы класса DataSet
- •Типы DataColumn и DataRow
- •Основные члены типа DataColumn:
- •Основные члены типа DataRow:
- •Работа с адаптерами данных:
- •Основные члены класса DbDataAdapter:
- •Параллельные вычисления. Многозадачность и многопоточность.
- •Некоторые члены класс Process:
- •Некоторые члены класса ProcessThread
- •Домены приложений
- •Некоторые члены класс AppDomain:
- •Многопоточность. Классификация состояний потока. Средства многопоточного программирования System.Threading.
- •Некоторые члены пространства имен System.Threading
- •Основные члены класс Thread
- •Состояния потока
- •Многопоточное программирование при помощи асинхронных вызовов делегатов
- •Создание вторичных потоков при помощи Thread.Start()
- •Синхронизация с помощью lock
- •Синхронизация с использованием типа System.Threading.Monitor
- •Синхронизация с использованием типа System.Threading.Interlocked
- •Синхронизация с использованием атрибута [Synchronization]
- •Использование System.Threading.Timer
- •Пул потоков clr
- •Библиотека Windows.Forms. Пространства имен. Структура приложения. Элементы управления. События. Иерархия элементов управления.
- •Основные пространства имен Windows Forms
- •Структура приложения WinForms
- •Элементы управления
- •События
- •Библиотека wpf. Отличия wpf от WindowsForms. Разметка xaml. Понятие Windows Presentation Foundation
- •Типы приложений wpf
- •Основные сборки wpf
- •Построение приложения wpf без xaml
- •Построение приложения wpf с использованием только xaml
- •Пример c# обработчика события для контрола, объявленного в xaml (связь кода и xaml):
- •Создание проекта
- •Знакомство с инструментами визуального конструктора wpf
Классы Directory (DirectoryInfo) и File (FileInfo) Некоторые общие свойства классов DirectoryInfo и FileInfo:
Attributes |
Получает или устанавливает атрибуты, представленые перечислением FileAttributes (доступный только для чтения, зашифрованный, скрытый или сжатый) |
CreationTime |
Получает или устанавливает время создания текущего файла или каталога |
Exists |
Может использоваться для определения, существует ли данный файл или каталог |
Extension |
Извлекает расширение файла |
FullName |
Получает полный путь к файлу или каталогу |
LastAccessTime |
Получает или устанавливает время последнего доступа к текущему файлу или каталогу |
LastWriteTime |
Получает или устанавливает время последней записи в текущий файл или каталог |
Name |
Получает имя текущего файла или каталога |
Дополнительные возможности класса DirectoryInfo
Create () CreateSubdirectory() |
Создает каталог (или набор подкаталогов) по заданному путевому имени |
Delete () |
Удаляет каталог и все его содержимое |
GetDirectories () |
Возвращает массив объектов Directorylnfo, описывающих все подкаталоги в текущем каталоге |
GetFiles () |
Возвращает массив объектов Filelnfo, описывающих файлы в заданном каталоге |
MoveTo () |
Перемещает каталог со всем содержимым по новому пути |
Parent |
Извлекает родительский каталог данного каталога |
Root |
Получает имя корневого каталога |
Пример:
DirectoryInfo dir = new Directorylnfo(@"C:\Windows");
Console.WriteLine("FullName: {0}", dir.FullName); // полное имя
Console.WriteLine("Name: {0}", dir.Name); // имя каталога
Console.WriteLine("Root: {0}", dir.Root); // корневой каталог
// Получить все файлы с расширением *.exe
FileInfo[] exeFiles = dir.GetFiles("*.exe", SearchOption.AllDirectories);
// Сколько файлов найдено?
Console.WriteLine("Found {0} EXE files", exeFiles.Length);
// Вывести имя каждого файла
foreach (Filelnfo f in exeFiles)
{
Console.WriteLine("File name: {0}", f.Name);
}
Дополнительные возможности класса FileInfo
AppendText() |
Создает объект StreamWriter (описанный ниже) и добавляет текст в файл |
СоруТо() |
Копирует существующий файл в новый файл |
Create() |
Создает новый файл и возвращает для него объект FileStream (описанный ниже) |
CreateText() |
Создает объект StreamWriter, записывающий новый текстовый файл |
Delete() |
Удаляет файл, к которому привязан экземпляр Filelnfo |
Directory |
Получает экземпляр родительского каталога |
DirectoryName |
Получает полный путь к родительскому каталогу |
Length |
Получает размер текущего файла или каталога |
MoveTo() |
Перемещает указанный файл в новое местоположение, предоставляя возможность указать новое имя файла |
Name |
Получает имя файла |
Open() |
Открывает файл с различными привилегиями чтения/записи и совместного доступа |
OpenText() |
Создает для файла объект StreamReader (описанный ниже) |
OpenRead() |
Создает доступный только для чтения объект FileStream |
OpenWrite() |
Создает доступный только для записи объект FileStream |
Пример создания файла:
f = new FileInfo(@"d:\test.dat");
f.Create();
Среди методов создания/открытия файлов наиболее гибким является метод Open(). Первый его параметр принимает значение из перечисления FileMode, описывающего, как именно должен быть создан/открыт файл:
CreateNew |
Создать новый файл. Если файл уже существует, генерируется исключение IOException |
Create |
Создать новый файл. Если файл уже существует, он будет перезаписан |
Open |
Открыть существующий файл. Если файл не существует, генерируется исключение FileNotFoundException |
OpenOrCreate |
Открыть файл, если он существует. Иначе создать новый |
Truncate |
Открыть файл и усечь его до нулевой длины |
Append |
Открывает файл, переходит в его конец и начинает операции записи. Если файл не существует, то создается новый |
Второй параметр метода Ореп() — значение перечисления FileAccess — используется для определения поведения чтения/записи лежащего в основе потока:
public enum FileAccess { Read, Write, ReadWrite }
И, наконец, третий параметр метода Open() — FileShare — указывает, как файл может быть разделен с другими файловыми дескрипторами. Ниже перечислены его возможные значения:
public enum FileShare { Delete, Inheritable, None, Read, ReadWrite, Write }
Классы Directory и File предоставляют функциональность, практически идентичную классам DirectoryInfo и FileInfo, однако через статические члены. Т.е следующие примеры имеют идентичную функциональность:
FileInfo f = new FileInfo(@"C:\Test2.dat");
FileStream fs = f.Create();
FileStream fs = File.Create(@"C:\Test2.dat");