Высокоуровневые методы информатики и программирования Лекция 17 Работа с файловой системой.

Презентация:



Advertisements
Похожие презентации
Двоичное кодирование текстовой информации Начиная с 60-х годов, компьютеры все больше стали использовать для обработки текстовой информации и.
Advertisements

Двоичное кодирование текстовой информации. Текст – последовательность символов компьютерного алфавита. Текстовая информация – это информация, выраженная.
двоичное кодирование текстовой информации ; таблицы кодировки ; понятие кодировки Unicode; научиться определять числовые коды символов ; научиться вводить.
КОДИРОВАНИЕТЕКСТАКОДИРОВАНИЕТЕКСТАКОДИРОВАНИЕТЕКСТАКОДИРОВАНИЕТЕКСТА.
Двоичное кодирование текстовой информации Начиная с 60-х годов, компьютеры все больше стали использовать для обработки текстовой информации и в настоящее.
Атрибуты Работа с файлами Сериализация Лекция 9. Атрибуты Работа с файлами Сериализация.
Кодирование текстовой информации. В традиционных кодировках для кодирования одного символа используется 8 бит. Легко подсчитать, что такой 8-разрядный.
Начиная с 60-х годов, компьютеры все больше стали использовать для обработки текстовой информации и в настоящее время большая часть ПК в мире занято обработкой.
Работа со строками Работа с файлами Лекция 7. Работа со строками Работа с файлами.
Двоичное кодирование текстовой информации Содержание 1.Как представляется текст в памяти компьютера.Как представляется текст в памяти компьютера. 2.КодКод.
Кодирование текстовой информации. Информация, выраженная с помощью естественных и формальных языков в письменной форме, обычно называется текстовой информацией.
Файлы и файловая система Шинкаренко Евгений Александрович МОУ Гимназия 2 г. Черняховск Калининградской области.
Кодирование текстовой информации. В традиционных кодировках для кодирования одного символа используется 8 бит. Легко подсчитать, что такой 8-разрядный.
27 января. Классная работа. Тексты в компьютерной памяти.
Двоичное кодирование символьной информации
Двоичное кодирование текстовой информации Терехова Н. А.
это информация, выраженная в письменной форме преобразование входной информации в форму, воспринимаемую компьютером, т.е. двоичный код. преобразование.
Кодирование текстовой информации Урок 16 9 класс Учитель: Мелихова О.Г. МБОУ СОШ 11 Г. Краснодар.
Московский Гуманитарный Университет. Тема доклада: «Стандарты кодов символов в Информационных Системах. Использование оригинальных шрифтов в ИС». Подготовила:
Двоичное кодирование текстовой информации Информация и информационные процессы.
Транксрипт:

Высокоуровневые методы информатики и программирования Лекция 17 Работа с файловой системой

План работы Основные понятия файловой системы Структура файла Класс Environment Класс DriveInfo Классы Directory и DirectoryInfo Классы File и FileInfo Системы кодирования символов

Упрощенная схема работы программы Программа Файлы с данными Файлы с данными пользователь

Способ хранения данных Способы хранения данных –В файлах собственной структуры –В файлах базы данных База данных – специальный способ хранения данных, который имеет: –Структуру данных (модели данных) – сетевые, реляционные, объектные; –Специальные программы доступа к данным в базе данных - СУБД; –Универсальный язык общения с реляционными базами данных – SQL.

Основные понятия Устройство – driver: –Физические (жесткие диски, флэш память, CD и т.п.) –Логические – C:, D:, …. Папка (каталог) – directory (folder). Файл – file.

Работа с файлами Файловая система – часть операционной системы обеспечивающая хранение данных на внешних устройствах. Данные хранятся на внешних устройствах (drives, devices) Единица хранения – файл (file). Файл имеет набор атрибутов и содержание (данные) Файлы содержатся в каталогах (directory), папках (folder). Каталог может также содержать файлы и другие каталоги (подкаталоги - subdirectory).

Схема файловой структуры

Структура файла Атрибуты Данные Содержание: FileStream StreamReader StreamWriter BynaryReader BynaryWriter Атрибуты : File FileInfo

Библиотека FCL (Framework Class Library) System System.DataSystem.Xml System.Web Globalization Diagnostics Configuration Collections Resources Reflection Net IO Threading Text ServiceProcess Security Design ADO SQLTypes SQL XPath XSLT Runtime InteropServices Remoting Serialization ConfigurationSessionState CachingSecurity Services Description Discovery Protocols UI HtmlControls WebControls System.Drawing Imaging Drawing2D Text Printing System.Windows.Forms FormComponentModel

Пространство имен System.IO Средства файлового ввода-вывода – набор классов, интерфейсов, структур, перечислений и делегатов. Задачей многих типов пространства System.IO – программная поддержка физических операций с каталогами и файлами. Содержится в компонентах: –mscorlib.dll (Component Object Runtime Library) – множество базовых типов для решения широкого спектра задач программирования; –System.dll – множество полезных типов, математические вычисления, обработка исключений

Классы для работы с файловой системой Вспомогательные –Environment (System) –DriveInfo (System.IO) Для работы с директориями –Directory –DirectoryInfo Для работы с файлами –Для работы с файлами в целом (атрибутами) File FileInfo –Для работы с содержанием файлов FileStream StreamReader и StreamWriter BinaryReader и BinaryWriter

Статический класс Environment Свойство –string MachineName { get; } – имя компьютера; –System.OperatingSystem OSVersion { get; } – получение информации об установленной ОС; –string UserName { get; } – имя работающего пользователя; –string CurrentDirectory { get; set; } – определить или задать текущий каталог. Методы –Получить список названий логических устройств компьютера, например A:\ или C:\ : string[] GetLogicalDrivers() –Посмотреть пути к специальным папкам: string[] GetFolderPath(Environment.SpecialFolder.xxx)

Перечисление Environment.SpecialFolder

Класс DriveInfo Основные элементы класса: Конструктор public DriveInfo(string driveName) Статический метод GetLogicalDrives() – возвращает массив объектов типа DriveInfo с возможностью получения дополнительной информации о дисках компьютера. Свойства –Name – строка с названием драйвера; –DriveType – тип драйвера (перечисление System.IO.DriveType {CDRom, Fixed, Network, NoRootDirectory, Ram, Removable, Unknown}); –RootDirectory – объект класса System.IO.DirectoryInfo; –bool IsReady – готовность устройства к работе; –long TotalSize – общий размер памяти; –long TotalFreeSpace – количество свободной памяти; –string VolumeLabel { get; set; } – текстовая метка драйвера. Пример использования: DriveInfo[ ] myDrives = DriveInfo. GetDrives(); foreach(DriveInfo d in myDrive) { Console.WriteLine(Имя: {0}, d.Name); Console.WriteLine(Тип: {0}, d.DriveType); }

Классы для работы с каталогами (папками) System.IO.Directory предоставляет статические методы для работы с директориями System.IO.DirectoryInfo предоставляю возможность создать объект класса для работы с конкретным каталогом.

Классы Directory и File

Основные члены типа DirectoryInfo GetDirectories() – получает массив строк, представляющих все подкаталоги текущего каталога. GetFiles() – получает массив типов FileInfo, представляющих множество файлов данного каталога. Create() – создает каталог (или множество подкаталогов) в соответствии с заданным именем пути. Delete() – удаляет каталог и все его содержимое. MoveTo() – перемещает каталог и его содержимое в место, соответствующее заданному новому пути. Parent – получить каталог родителя указанного пути. Root – получить корневую часть пути.

Методы классов DirectoryInfo Конструктор:DirectoryInfo(путь к каталогу) Например: DirectoryInfo dir1 = new DirectoryInfo dir2 = new DirectoryInfo(.); System.IO.DirectoryInfo представляет каталог –GetDirectories([mask]) получить подкаталоги –GetFiles([mask]) получить содержащиеся файлы

Пример – работа со списком названий каталогов string[ ] folders; folders = for (int i = 0; i < folders.Length; i++) Console.WriteLine(folders[i]);

Пример – работа со списком названий файлов using System.IO;... string[ ] fls; fls = "p*.*"); for (int i = 0; i < fls.Length; i++) Console.WriteLine(fls[i]);

Классы для работы с файлами System.IO.File предоставляют статические методы для работы с файлами System.IO.FileInfo предоставляю возможность создать объект класса для работы с файлами –может быть построен заданием пути в конструкторе –Может быть получен из перечисления GetFiles()

Методы классов для работы с файлами System.IO.File предоставляют статические методы для работы с файлами File.Copy(FileName1, FileName2); // копирование файла File.MoveTo(FileName1, FileName2); // перемещение фала File.Delete(FileName1); // удаление файла DateTime dt = File.GetCreationTime(string FileName); System.IO.FileInfo предоставляю возможность создать объект класса для работы с файлами FileInfo fi = FileInfo(FileName1); // создание объекта fi.Copy(FileName2); // копирование файла fi.MoveTo(FileName2); // перемещение файла fi.Delete(); // удаление файла DateTime dt = fi.GetCreationTime(); // определение даты создания

Основные свойства абстрактного базового класса FileSystemInfo Attributes – получение или задание атрибутов текущего файла, которые представляются перечислением FileAttributes. CreationTime – получение или задание времени создания текущего файла или директории. Exists – проверка, существует ли заданный файл или директория. Extension – получения расширения имени файла FullName – получение полного пути к файлу или директории LastAccessTime – получение или задание времени последнего обращения к файлу LastWriteTime – получение или задание времени последней корректировки файла Name – получение имени текущего файла или директории.

Основные методы класса DirectoryInfo Create(), CreateSubdirectory() – создание директории (или набора поддиректорий) с заданными именами. Delete() – удаление директории и всего ее содержания. GetDirectories() – получение массива строк с названия поддиректорий. GetFiles() – получение массива экземпляров класса FileInfo, которые соответствуют набору файлов заданной директории.

Основные методы класса FileInfo CopyTo() – копирование существующего файла в новый файл. MoveTo() – перемещение текущего файла на новое место и с новым именем. Delete() – удаление файла, с которым выполняется работа. DirectoryName – получение имени родительской директории. Length – получение размера текущего файла. Name – получение имени файла. Directory – получение экземпляра родительской директории.

Системы кодирования символов ASCII – используется 7 бит; ANSI – используется 1 байт; Unicode – используются 2 байта –BigEndianUnicode; –Little-endian architecture. UTF8 – 1 байт (удаление первого байта в Unicode); UTF7 – используется семь битов для символа ( ).

Кодирование символов Первой известной кодировкой символов была кодировка ASCII, и она используется до сих пор. В ASCII-кодировке каждый символ занимает 8 бит, или один байт. Из-за того, что ASCII была предназначена для западных языков, ее использование было ограничено в европейских странах и регионах, чьи языки содержали символы, не включенные в 256 символов, поддерживаемых ASCII. Чтобы обойти это ограничение, Международная организация по стандартизации (ISO - International Standards Organization) создала новый стандарт кодировки символов, названный Latin-1, который содержал европейские символы, не вошедшие в набор ASCII. Microsoft расширила Latin-1 и назвала этот стандарт ANSI. Но ANSI по-прежнему осталась 8-битной кодировкой, которая может представлять только 256 уникальных символов. Многие языки имеют тысячи символов, особенно азиатские языки, такие как китайский, корейский и японский. Для преодоления ограничений стандарта на 8-битную кодировку символов, Microsoft в сотрудничестве с такими компаниями, как Apple Computer, Inc., и IBM, создала некоммерческий консорциум Unicode, Inc., целью которого стало определение нового стандарта на кодировку символов для международных наборов символов. Работа, проделанная в Unicode, была объединена с работой, которая велась в ISO, и результатом стал стандарт Unicode для кодировки символов. Unicode является 16-разрядным стандартом, что обеспечивает уникальных символов - более чем достаточно для представления всех языков мира. Он поддерживает даже архаические языки, такие как санскрит и египетские иероглифы, и включает знаки препинания, математические и графические символы. Родной кодировкой для OC Windows XP/Vista/7 является Unicode, но она поддерживает и ANSI. Внутри себя операционная система представляет имена объектов, пути и имена файлов в виде 16-битовых символов Unicode. Она также обычно использует Unicode для хранения данных в реестре.

American Standard Code for Information Interchange - ASCII ASCII изначально предназначался для обмена информацией по телетайпу, в нём, кроме информационных символов, используются символы-команды для управления связью. Это обычный набор спецсигналов, применявшийся и в других до компьютерных средствах обмена сообщениями (азбука Морзе, семафорная азбука), дополненный с учётом специфики устройства. Две таблицы –первая таблица с 0 до 127 – латинский алфавит –вторая таблица с 128 до 255 – национальные алфавиты (для нас - кириллица) Например: СимволКод $36 *42 A65 B66 a97 b

ASCII – первая таблица (0-127) nulsohstxetxeotenqackbelbsht 1 nlvtnpcrsosidledc1dc2dc3 2 dc4naksynetbcanemsubescfsgs 3 rsussp !#$%& 4 ()*+,-./ :; 6 7 FGHIJKLMNO 8 PQRSTUVWXY 9 Z [\]^_abC 10 defghijklM 11 nopq rstuvW 12 xyz{ |}~del

ASCII – вторая таблица ( ) A.B.C.D.E.F 8. Ђ 402 Ѓ A ѓ E … AC 2030 Љ Њ 40A Ќ 40C Ћ 40B Џ 40F 9. ђ C 201D 2022 – љ A њ 45A ќ 45C ћ 45B џ 45F A. A0 Ў 40E ў 45E Ј 408 ¤ A4 Ґ 490 ¦ A6 § A7 Ё 401 © A9 Є 404 « AB ¬ ACAD ® AE Ї 407 B. ° B0 ± B1 І 406 і 456 ґ 491 µ B5 ¶ B6 · B7 ё є 454 » BB ј 458 Ѕ 405 ѕ 455 ї 457 C. А 410 Б 411 В 412 Г 413 Д 414 Е 415 Ж 416 З 417 И 418 Й 419 К 41A Л 41B М 41C Н 41D О 41E П 41F D. Р 420 С 421 Т 422 У 423 Ф 424 Х 425 Ц 426 Ч 427 Ш 428 Щ 429 Ъ 42A Ы 42B Ь 42C Э 42D Ю 42E Я 42F E. а 430 б 431 в 432 г 433 д 434 е 435 ж 436 з 437 и 438 й 439 к 43A л 43B м 43C н 43D о 43E п 43F F. р 440 с 441 т 442 у 443 ф 444 х 445 ц 446 ч 447 ш 448 щ 449 ъ 44A ы 44B ь 44C э 44D ю 44E я 44F

Вспомогательный класс Encoding Класс, описывающий используемую систему кодирования символов Для создания объектов могут использоваться статические свойства –Encoding.Unicode –Encoding.BigEndianUnicode –Encoding.UTF8 –Encoding.UTF7 –Encoding.ASCII Позволяет выполнять преобразования между кодировками.

Основные методы для работы с текстовыми файлами Методы класса System.IO.StreamWriter –Write(…) – метод записи строки в файл –WriteLine(…) – метод записи строки в файл и переход к новой строке –NewLine – свойство для задания символов возврата каретки, за которой следует символ окончания строки (\r\n). –void Flush() – метод вывода содержимого буфера на диск; –void Close() – метод закрытия файла. Методы класса System.IO.StreamReader –string ReadLine() – метод чтения одной строки файла; –string ReadToEnd() – метод чтения всех строк файла до конца; –void Close() – метод закрытия файла.

Доля кодировки Unicode в Web-cети Доля кодировки Unicode в интернет-документах приблизилась к 50 процентам ( ). Об этом говорится в записи в блоге Google. Для расчетов компания, давно перешедшая на Unicode, использовала данные собственного поискового индекса. Unicode впервые обогнал все другие кодировки в мае 2008 года. Тогда его доля составляла около 25 процентов, как и доли ASCII- и западноевропейской кодировок. В 2001 году доля ASCII-кодировки составляла около 55 процентов. Сейчас она снизилась до 20. Доли других популярных национальных кодировок, в том числе и распространенной в России CP-1251 не превышают десяти, а чаще и пяти процентов. Многобайтовый стандарт кодирования символов Unicode позволяет использовать символы тысяч национальных алфавитов и представить знаки практически всех письменных языков, в то время как обычные кодировки ограничиваются поддержкой максимум нескольких десятков языков и нескольких алфавитов.