Функция CreateFile может создать новый файл или открыть существующий файл. Необходимо указать имя файла, инструкции по созданию и другие атрибуты. Когда приложение создает новый файл, операционная система добавляет его в указанный каталог.
Операционная система назначает уникальный идентификатор, называемый дескриптором, каждому файлу, который открыт или создан с помощью CreateFile. Приложение может использовать этот дескриптор с функциями, которые считывают, записывают и описывают файл. Он действителен, пока не будут закрыты все ссылки на этот дескриптор. При запуске приложения он наследует все открытые дескрипторы от процесса, который запустил его, если дескрипторы были созданы как наследуемые.
Перед попыткой использовать дескриптор для доступа к файлу приложение должно проверить значение дескриптора, возвращаемого createFile . При возникновении ошибки значение дескриптора будет INVALID_HANDLE_VALUE , и приложение может использовать функцию GetLastError для получения расширенных сведений об ошибке.
3 — Как открыть и отредактировать созданный файл
Если приложение использует CreateFile, оно должно использовать параметр dwDesiredAccess , чтобы указать, планируется ли чтение из файла, запись в файл, как чтение, так и запись или ни то, ни другое. Это называется запросом режима доступа. Приложение также должно использовать параметр dwCreationDisposition , чтобы указать, какое действие следует предпринять, если файл уже существует, известный как ликвидация создания. Например, приложение может вызвать CreateFile с параметром dwCreationDisposition , чтобы CREATE_ALWAYS всегда создавать новый файл, даже если файл с тем же именем уже существует (таким образом перезаписывает существующий файл). Выполняется ли это успешно или не зависит от таких факторов, как атрибуты предыдущего файла и параметры безопасности (дополнительные сведения см. в следующих разделах).
Приложение также использует CreateFile , чтобы указать, нужно ли предоставлять общий доступ к файлу для чтения, записи, обоих или ни для того, ни другого. Это называется режимом общего доступа. Открытый файл, который не является общим (параметр dwShareMode имеет нулевое значение), нельзя открыть повторно либо приложением, которое открыло его, либо другим приложением, пока его дескриптор не будет закрыт. Это также называется монопольным доступом.
Когда процесс использует CreateFile для попытки открыть файл, который уже был открыт в режиме общего доступа (dwShareMode имеет допустимое ненулевое значение), система сравнивает запрошенный режим доступа и общего доступа с указанными при открытии файла. Если указать режим доступа или общего доступа, конфликтующий с режимами, указанными в предыдущем вызове, createFile завершается ошибкой.
В следующей таблице показаны допустимые сочетания двух вызовов CreateFile с использованием различных режимов доступа и режимов общего доступа (dwDesiredAccess, dwShareMode соответственно). Не имеет значения, в каком порядке выполняются вызовы CreateFile . Однако все последующие операции ввода-вывода файлов для каждого дескриптора файлов по-прежнему будут ограничены текущими режимами доступа и общего доступа, связанными с этим конкретным дескриптором файлов.
Текстовые файлы в с++ | программа с использованием файлов
Помимо стандартных атрибутов файла, можно также указать атрибуты безопасности, включив указатель на структуру SECURITY_ATTRIBUTES в качестве четвертого параметра CreateFile. Однако базовая файловая система должна поддерживать безопасность для этого, чтобы она не влияла (например, файловая система NTFS поддерживает ее, но различные файловые системы FAT не поддерживают). Дополнительные сведения об атрибутах безопасности см. в разделе контроль доступа.
Приложение, создающее новый файл, может предоставить необязательный дескриптор в файл шаблона, из которого CreateFile принимает атрибуты файла и расширенные атрибуты для создания нового файла.
Сценарии CreateFile
Существует несколько фундаментальных сценариев для инициации доступа к файлу с помощью функции CreateFile . Ниже приведены следующие сведения:
- Создание нового файла, если файл с таким именем еще не существует.
- Создание нового файла, даже если файл с тем же именем уже существует, очищая данные и запуская пустой файл.
- Открытие существующего файла только в том случае, если он существует и только нетронутый.
- Открытие существующего файла только в том случае, если он существует, усекая его, чтобы он был пустым.
- Всегда открывая файл как есть, создайте новый файл, если он не существует.
Эти сценарии управляются правильным использованием параметра dwCreationDisposition . Ниже приведена разбивка того, как эти сценарии сопоставляются со значениями этого параметра и что происходит при их использовании.
При создании или открытии нового файла, если файл с таким именем еще не существует (параметр dwCreationDisposition имеет значение CREATE_NEW, CREATE_ALWAYS или OPEN_ALWAYS), функция CreateFile выполняет следующие действия:
- Объединяет атрибуты и флаги файла, заданные dwFlagsAndAttributes , с FILE_ATTRIBUTE_ARCHIVE.
- Задает длину файла равным нулю.
- Копирует расширенные атрибуты, предоставленные файлом шаблона, в новый файл, если указан параметр hTemplateFile (переопределяет все флаги FILE_ATTRIBUTE_* , указанные ранее).
- Задает флаг наследования, заданный членом bInheritHandle и дескриптором безопасности, заданным элементом lpSecurityDescriptor параметра lpSecurityAttributes (SECURITY_ATTRIBUTES структуры), если он указан.
При создании нового файла, даже если файл с тем же именем уже существует (dwCreationDisposition имеет значение CREATE_ALWAYS), функция CreateFile выполняет следующие действия:
- Проверяет текущие атрибуты файла и параметры безопасности для доступа на запись, завершив сбой при отказе.
- Объединяет атрибуты и флаги файла, заданные dwFlagsAndAttributes , с FILE_ATTRIBUTE_ARCHIVE и существующими атрибутами файла.
- Задает длину файла равным нулю (то есть все данные, которые находились в файле, больше недоступны и файл пуст).
- Копирует расширенные атрибуты, предоставленные файлом шаблона, в новый файл, если указан параметр hTemplateFile (переопределяет все флаги FILE_ATTRIBUTE_* , указанные ранее).
- Задает флаг наследования, заданный элементом bInheritHandle параметра lpSecurityAttributes (SECURITY_ATTRIBUTES структуры), если он указан, но игнорирует член lpSecurityDescriptor структуры SECURITY_ATTRIBUTES .
- В противном случае (т. е. CreateFile возвращает допустимый дескриптор), вызов Метода GetLastError выдает код ERROR_ALREADY_EXISTS, даже если для этого конкретного варианта использования это не является ошибкой,как таковой (если вы намеревались создать «новый» (пустой) файл вместо существующего).
При открытии существующего файла (параметр dwCreationDisposition , равный OPEN_EXISTING, OPEN_ALWAYS или TRUNCATE_EXISTING), функция CreateFile выполняет следующие действия:
- Проверяет текущие атрибуты файла и параметры безопасности для запрошенного доступа, при отказе при отказе.
- Объединяет флаги файлов (FILE_FLAG_*), заданные dwFlagsAndAttributes , с существующими атрибутами файла, и игнорирует любые атрибуты файла (FILE_ATTRIBUTE_*), заданные dwFlagsAndAttributes.
- Задает длину файла равным нулю, только если параметр dwCreationDisposition имеет значение TRUNCATE_EXISTING, в противном случае сохраняется текущая длина файла и файл открывается как есть.
- Игнорирует параметр hTemplateFile .
- Задает флаг наследования, заданный элементом bInheritHandle параметра lpSecurityAttributes (SECURITY_ATTRIBUTES структуры), если он указан, но игнорирует член lpSecurityDescriptor структуры SECURITY_ATTRIBUTES .
Атрибуты и каталоги файлов
Атрибуты файлов являются частью метаданных, связанных с файлом или каталогом, каждый из которых имеет собственную цель и правила по его настройке и изменению. Некоторые из этих атрибутов применяются только к файлам, а некоторые — только к каталогам. Например, атрибут FILE_ATTRIBUTE_DIRECTORY применяется только к каталогам: он используется файловой системой для определения того, является ли объект на диске каталогом, но его нельзя изменить для существующего объекта файловой системы.
Некоторые атрибуты файлов можно задать для каталога, но имеют значение только для файлов, созданных в этом каталоге, которые используются в качестве атрибутов по умолчанию. Например, FILE_ATTRIBUTE_COMPRESSED можно задать для объекта каталога, но поскольку сам объект каталога не содержит фактических данных, он не сжимается; однако каталоги, помеченные этим атрибутом, сообщают файловой системе сжимать все новые файлы, добавленные в этот каталог. Любой атрибут файла, который можно задать в каталоге, а также будет установлен для новых файлов, добавленных в этот каталог, называется унаследованным атрибутом.
Функция CreateFile предоставляет параметр для задания определенных атрибутов файла при создании файла. Как правило, эти атрибуты являются наиболее распространенными для приложения во время создания файла, но не все возможные атрибуты файлов доступны для CreateFile.
Некоторые атрибуты файлов требуют использования других функций, таких как SetFileAttributes, DeviceIoControl или DecryptFile после того, как файл уже существует. В случае FILE_ATTRIBUTE_DIRECTORY функция CreateDirectory требуется во время создания, так как CreateFile не может создавать каталоги. Другие атрибуты файлов, требующие специальной обработки, — это FILE_ATTRIBUTE_REPARSE_POINT и FILE_ATTRIBUTE_SPARSE_FILE, для которых требуется DeviceIoControl. Дополнительные сведения см. в разделе SetFileAttributes.
Как упоминалось ранее, наследование атрибутов файла происходит при создании файла с атрибутами файла, считываемого из атрибутов каталога, в которых будет находиться файл. В следующей таблице перечислены эти унаследованные атрибуты и их связь с возможностями CreateFile .
FILE_ATTRIBUTE_COMPRESSED набор. | Нет элемента управления. Используйте DeviceIoControl для очистки. |
FILE_ATTRIBUTE_COMPRESSED не задано. | Нет элемента управления. Используйте DeviceIoControl для задания. |
FILE_ATTRIBUTE_ENCRYPTED набор. | Нет элемента управления. Используйте DecryptFile. |
FILE_ATTRIBUTE_ENCRYPTED не задано. | Можно задать с помощью CreateFile. |
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED набор. | Нет элемента управления. Используйте SetFileAttributes для очистки . |
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED не задано. | Нет элемента управления. Используйте SetFileAttributes для задания. |
Источник: learn.microsoft.com
Задания к § 17 Электронный документ и файл Матвеева, Челак Информатика Рабочая тетрадь 2 класс ответы
Электронный документ и файл
Можно ли по полному имени файла определить, с помощью какой программы он создан? И чем, вообще, текстовый документ на бумажном носителе отличается от того же документа, но который хранится в памяти компьютера? Если ребята будут внимательно слушать профессора Знатокова на уроке информатики, а не ворон считал, то легко смогут ответить на эти простые вопросы.
В данный момент вы не можете посмотреть или раздать видеоурок ученикам
Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет.
Получите невероятные возможности
1. Откройте доступ ко всем видеоурокам комплекта.
2. Раздавайте видеоуроки в личные кабинеты ученикам.
3. Смотрите статистику просмотра видеоуроков учениками.
Получить доступ
Конспект урока «Электронный документ и файл»
Максим, как ты думаешь, можно ли по полному имени файла определить, с помощью какой программы он создан? И чем, вообще, по-твоему, текстовый документ на бумажном носителе отличается от того же документа, но который хранится в памяти компьютера?
Даааа, вот если бы Максим внимательно слушал учителя на уроке информатики, а не ворон считал, то сейчас бы смог ответить на эти простые вопросы своего товарища и не выглядел бы неучем.
Здравствуйте, мальчики и девочки.
А вы внимательно слушаете на уроке учителя или как Максим? Надеюсь, что внимательно и на каждом урок. Ведь стоит один раз что-то пропустить и дальше будет очень сложно. Максим даже не знает, что такое «бумажный носитель».
А вы помните? Конечно, это книги, газеты, журналы. Всё это люди используют для хранения и передачи информации. Вообще, носителем информации может быть любой предмет, на котором можно сделать запись или что-то нарисовать. В наше время часто используют в качестве носителя бумагу.
Но, наверное, ещё чаще с появлением компьютера стали использовать современные электронные носители: CD и DVD диски, флэш накопители и другие. И конечно, появление таких носителей неразрывно связано с электронными документами.
Вот давайте сегодня и узнаем, что такое электронный документ и файл. Познакомимся с достоинствами и недостатками электронных документов с точки зрения их хранения, использования и передачи.
Электронный документ – это документ, который создан с помощью компьютера или другого электронного устройства. Ребята, можете ли вы назвать какие-нибудь электронные устройства? Верно! Мобильный телефон, видеокамера, графический планшет, цифровой фотоаппарат.
Всё это выглядит сейчас компактно, занимает мало места. А помните ли вы, как выглядели первые компьютеры? Они были очень огромные и занимали целую комнату.
И назывались они, кстати, электронные вычислительные машины, сокращённо ЭВМ.
Работать они могли только с числовыми данными, то есть вычислять. Их поэтому и называли «вычислительные машины». В те времена ещё не было понятий «электронный документ» и «файл», ведь компьютеры были устроены иначе.
Уже потом со временем были разработаны новые устройства и специальные программы, которые обрабатывали текстовые, графические и звуковые данные. Это текстовые, графические и музыкальные редакторы. Тогда и появилась возможность создавать разные документы с помощью компьютера и возникли новые понятия: электронный документ и файл.
С помощью современных компьютеров можно создавать, хранить, обрабатывать, передавать и получать электронные документы, которые содержат и текстовые, и числовые, и графические данные.
Вот и подошла пора рассказать вам, что же такое файл. Ведь не имея представление о файле, вы не сможете научиться работать на компьютере. Всё дело в том, что любые документы, которые созданы с помощью компьютера, хранятся в его памяти именно в виде файлов.
Создаются они с помощью специальных программ. Не трудно догадаться, что текстовые файлы создаются с помощью текстового редактора. А с помощью графического редактора мы создаём графические файлы.
Файл – это область памяти компьютера – жёсткого диска, компакт-диска, флэш-памяти.
Электронные документы имеют свои достоинства и недостатки.
К достоинствам можно отнести:
Возможность быстро найти необходимый документ. Открыли, например, в своём компьютере Интернет и нашли то, что вам надо.
Возможность пользоваться документом, не ограничивая себя во времени. Если вы взяли у друга или в библиотеке журнал или книгу, их надо вернуть. А если у вас есть электронная версия книги, её отдавать никому не надо, читайте сколько хотите.
Возможность получить доступ к документу независимо от времени и места. Например, в библиотеку, вы не сможете прийти после закрытия и взять книгу, которая необходима. А найти её электронную версию в Интернете или открыть у себя в компьютере сможете в любое время суток.
Возможность быстрой передачи документа на любые расстояния и сразу нескольким людям, например, по электронной почте.
Для хранения электронных документов не требуется больших площадей.
К недостаткам электронных документов можно отнести:
Необходимость наличия технических средств для создания, прочтения, хранения и использования документов. Например, посмотреть этот видеосюжет без компьютера, телефона, планшета или каких-нибудь других электронных устройств не получится.
Необходимость зашиты информации. Всегда стоит помнить, что от поломки компьютера, вирусов, неосторожности младшего брата или сестрёнки, которые могут случайно удалить ваш документ, никто не застрахован.
А вот вторая часть имени файла, та, что после точки, появляется автоматически. Называется эта часть расширением имени файла. Оно присваивается самой программой, с помощью которой файл был создан. Эта часть всегда состоит из латинских букв.
Длина левой части имени файла должна быть не более 256 символов (знаков). Но, конечно, столько знаков в имени лучше не писать, по разным причинам. Ну хотя бы даже потому, что вы сами не запомните его название, а потом и найти не сможете в компьютере. Лучше, если имена файлов будут связаны с его содержимым.
Например, если там написана биография Александра Сергеевича Пушкина, то можно записать, «О Пушкине», например или «Биография Пушкина». Из подобных названий можно сразу предположить, какая там содержится информация. А вот из подобных названий предположить о содержимом получится вряд ли.
Вторая часть имени файла обычно содержит три символа, но может содержать два или четыре. Напомню вам, на всякий случай, что вторая часть имени файла (расширение) присваивается автоматически программой, с помощью которой файл был создан. Вы ничего сами не записываете.
Более подробно об именах файлов вы будете знакомиться в старших классах. Но основы должны знать уже сейчас.
Вот, ребята, посмотрите примеры имён файлов в этой таблице. В левой колонке записано имя файла, а в правой – программа, с помощью которой файл создан.
Помните, товарищ Максима спрашивал у него: «Можно ли по полному имени файла определить, с помощью какой программы он создан?» Если кто-то такой же вопрос задаст вам, отвечайте, что «да, можно». Вот в этой таблице мы сейчас это и рассмотрим.
Если в расширении вы видите вот такие буквы doc, docx, то это означает, что эти файлы были созданы с помощью текстового редактора. Даже если в первой части имени файла мы видим слово «рисунок». Ведь программу мы определяем только по расширению имени файла.
А вот если в расширении стоят вот такие символы bmp, tif, jpg, то это значит, что созданы файлы были с помощью графического редактора. На создание файлов с помощью электронных таблиц указывают расширения xls, xlsx. И в последней строке представлены расширения файлов, которые созданы с помощью музыкального редактора следующие.
Разумеется, мы рассмотрели не все расширения. С другими вы познакомитесь, когда будете в старших классах.
Ну вот и подходит к концу наша встреча. Осталось заполнить словарь.
Электронный документ – это документ, который создан с помощью компьютера, планшета, телефона или других электронных устройств и хранится в их памяти в виде файлов.
Файл – это область памяти компьютера – жёсткого диска, компакт-диска, флэш-памяти, которая имеет имя.
Имя файла – состоит из двух частей, разделённых точкой.
Расширение имени файла – вторая часть имени файла (после точки).
А глядя на эту таблицу, мы можем с уверенностью сказать: компьютер помогает создавать, а также хранить, обрабатывать и передавать электронные документы с помощью специальных программ.
Ну а чтобы овладеть этими программами, нужно хорошо учиться и внимательно слушать учителя. А то можете попасть в такую неловкую ситуацию, как Максим.
Успехов вам, ребята, и до новых встреч.
Источник: videouroki.net