
- •Имена unc
- •1.1.2. Процедуры и функции win32 для работы с файлами
- •1. Создание или открытие файла
- •2. Запись в файл
- •3.Чтение из файла
- •4. Закрытие файла
- •1.1.3. Пример программы, использующей функции win32 для доступа к файлам и каталогам
- •1.1.4. Функции delphi для работы с файлами
- •1. Связывание логического и физического имен файлов
- •2. Типы файлов
- •2. Открытие файла
- •4. Чтение и запись текстовых файлов
- •5. Чтение и запись типизированных файлов
- •6. Чтение и запись нетипизированных файлов
- •7. Закрытие файлов
- •8. Проверка окончания файла
- •9. Файловый ввод/вывод с помощью компонентов
- •10. Обработка ошибок при работе с файлами в delphi
- •1.1.5. Пример программы, использующей функции delphi для доступа к файлам и каталогам
- •1.2. Задание к лабораторной работе
- •Контрольные вопросы
ПРАКТИЧЕСКАЯ РАБОТА № 1.
РАБОТА С УДАЛЕННЫМИ ФАЙЛАМИ С ПОМОЩЬЮ
УНИВЕРСАЛЬНЫХ ПРАВИЛ ИМЕНОВАНИЯ
Цель работы: Освоение методов передачи файлов по сети с использованием универсальных правил именования сетевых объектов.
1.1. ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ
Microsoft Windows позволяет приложениям обмениваться информацией по сети с помощью встроенных служб файловой системы. Для идентификации файлов в сети ОС Windows использует универсальные правила именования (Universal Naming Convention, UNC).
В теоретическом введении рассматриваются следующие вопросы:
-
структура имен UNC;
-
процедуры и функции ОС Windows для работы с файлами;
-
процедуры и функции Delphi для работы с файлами.
-
Имена unc
Имена UNC – стандартный способ доступа к сетевым файлам и устройствам. Имена UNC имеют вид: \\сервер\ресурс\путь,
где:
\\сервер, начинается с двух обратных косых черт и имени удаленного сервера, на котором находится нужный файл.
\ресурс, это имя общего ресурса, то есть папки в файловой системе, к которой открыт общий доступ пользователям сети.
\путь, обозначает путь к нужному файлу.
Например, на сервере с именем Myserver находится папка D:\Myfiles\CoolMusic, предоставленная для общего доступа под сетевым именем Myshare, а в этой папке - файл Sample.mp3. Тогда для доступа к этому файлу с другой машины надо указать следующее UNC- имя:
\\ Myserver\ Myshare\ Sample.mp3
Обращение к файлам по сети с использованием UNC-имен скрывает от приложения детали формирования сетевого соединения, так что система легко находит нужные файлы даже при подключении по модему. Все детали сетевого соединения организуются перенаправителем. Перенаправитель – это компонент сетевой ОС, который выполняет следующие функции:
-
прием и обработка запросов ввода-вывода;
-
формирование запросов и передача их серверной службе на удаленном компьютере. Серверная служба на удаленном компьютере генерирует локальные запросы ввода вывода к затребованному ресурсу.
1.1.2. Процедуры и функции win32 для работы с файлами
1. Создание или открытие файла
Для создания или открытия файла в ОС Windows используется функция CreateFile.
Функция CreatFile имеет следующий синтаксис:
function CreateFile (
pFileName: PChar;
dwDesiredAccess,
dwShareMode: DWORD;
lpSecurityAttributes: PSecurityAttributes;
dwCreationDisposition, dwFlagsAndAttributes: DWORD;
hTemplateFile: THandle
): THandle; stdcall;
где
pFileName – определяет имя создаваемого или открываемого файла в формате UNC.
dwDesiredAccess - указывает способ доступа к содержимому файла. Возможные значения параметра dwDesiredAccess приведены в табл. 1.1.
Таблица 1.1
Возможные значения параметра dwDesiredAccess
Значения параметра fdwAccess |
Описание |
0 |
Содержимое файла нельзя считывать и записывать. С помощью данного атрибута можно только получить атрибуты файла |
GENERIC_READ |
Чтение файла разрешено |
GENERIC_WRITE |
Запись в файл разрешена |
GENERIC_READ or GENERIC_WRITE |
Разрешено чтение файла и запись в файл |
dwShareMode - указывает тип совместного доступа к данному файлу. Возможные значения параметра dwShareMode приведены в табл. 1.2.
Таблица 1.2
Возможные значения параметра dwShareMode
Значение параметра dwShareMode |
Описание |
0 |
Запрещены любые попытки повторного открытия файла |
FILE_SHARE_READ |
Посторонний процесс может открыть данный файл только для чтения |
FILE_SHARE_WRITE |
Посторонний процесс может открыть данный файл только для записи |
FILE_SHARE_READ or FILE_SHARE_WRITE |
Посторонний процесс может открыть данный файл без ограничений |
lpSecurityAttributes – указывает на структуру SECURITY_ATTRIBUTES, которая содержит информацию о защите объекта ядра "файл".Если защиты не нужно в этот параметр заносится nil.
dwCreationDisposition – указывает флаги для тонкой настройки функции CreateFile. Возможные значения параметра dwCreationDisposition приведены в таблице 1.3.
dwFlagsAndAttributes – указывает атрибуты создаваемого файла. Если функция открывает уже существующий файл, то информация об атрибутах игнорируется. Возможные значения параметра dwFlagsAndAttributes приведены в таблице 1.4. Перечисленные в таблице 1.4 флаги можно объединять с помощью функции or.
hTemplateFile – либо дескриптор открытого файла, либо равен 0. В первом случае функция игнорирует параметр dwFlagsAndAttributes и использует флаги и атрибуты, связанные с файлом, который определяется параметром hTemplateFile. Чтобы такая схема сработала, файл, заданный параметром hTemplateFile, нужно открыть с флагом GENERIC_READ. Если функция CreateFile открывает существующий файл, этот параметр игнорируется.
Таблица 1.3
Возможные значения параметра dwCreationDisposition
Значение параметра dwCreationDisposition |
Описание |
CREATE_NEW |
Функция создает новый файл, но сообщает об ошибке, если файл с таким именем уже существует |
CREATE_ALWAYS |
Функция создает файл независимо от того, существует ли уже файл с таким именем. Если файл существует, то замещается новым |
OPEN_EXISTING |
Функция открывает существующий файл и сообщает об ошибке, если файла с таким именем нет. |
OPEN_ALWAYS |
Функция открывает файл, если он существует, и создает новый, если такого нет |
TRUNCATE_EXISTING |
Функция открывает файл и урезает его до нулевой длины, но сообщает об ошибке, если указанного файла нет. Если указан данный флаг, то параметр dwDesiredAccess должен иметь значение GENERIC_WRITE |
Таблица 1.4
Возможные значения параметра dwFlagsAndAttributes
Значение параметра fdwAttrsAndFlags |
Описание |
FILE_ATTRIBUTE_ARCHIVE |
Файл является архивным. Данный атрибут используют для того, чтобы пометить файлы для резервного копирования. При создании нового файла атрибут FILE_ATTRIBUTE_ARCHIVE устанавливается автоматически |
FILE_ATTRIBUTE_HIDDEN |
Файл является скрытым |
FILE_ATTRIBUTE_NORMAL |
У файла нет атрибутов. Данный атрибут допустим только, если используется один. |
FILE_ATTRIBUTE_READONLY |
Файл только для чтения |
FILE_ATTRIBUTE_SYSTEM |
Файл является частью операционной системы и используется только ею. |
При успешном создании или открытии файла, функция CreateProcess возвращает его описатель (дескриптор). В случае ошибки функция CreateProcess возвращает INVALID_HANDLE_VALUE (-1).