Как создать собственный формат файла

Обновлено: 04.07.2024

Я разрабатываю программное обеспечение и хочу сохранить данные в текстовом файле. но не хочу, чтобы пользователь открывал их как текстовый файл, это должно делать только приложение.
Возможно ли это? если да, то как? Я искал в Google, но не было веской причины, чтобы помочь мне.

  • 7 участников
  • 9 ответов
  • 1 000 просмотров
  • Двухдневное обсуждение
  • Последнее сообщение 5 лет назад Последнее сообщение от tinstaafl

Рекомендуемые ответы

Обратите внимание, что использование другого расширения не помешает людям открыть файл в текстовом редакторе. Это просто перестанет быть текстовым редактором в качестве приложения по умолчанию, которое будет открываться при двойном щелчке по нему в файловом менеджере (если только пользователь затем не выберет текстовый редактор как …

как запретить пользователю открывать файлы внутри файла?

Если файл находится на моем компьютере, я найду способ его открыть. Файлы, которые пытаются «помешать» мне получить к ним доступ, — это файлы, которые мне не нужны на моем компьютере. Теперь как…

Все 9 ответов

Создайте новое расширение (вы можете проверить ' data-bs-template='

Обратите внимание, что использование другого расширения не помешает людям открыть файл в текстовом редакторе. Это просто перестанет использовать текстовый редактор в качестве приложения по умолчанию, которое будет открываться при двойном щелчке по нему в файловом менеджере (если только пользователь не выберет текстовый редактор по умолчанию для этого расширения).

как запретить пользователю открывать файлы внутри файла?

как запретить пользователю открывать файлы внутри файла?

Если файл находится на моем компьютере, я найду способ его открыть. Файлы, которые пытаются «помешать» мне получить к ним доступ, — это файлы, которые мне не нужны на моем компьютере. Теперь, что касается программ, которые хранят информацию на моем компьютере и говорят мне, что я не должен пытаться возиться с ними для моего же блага, и они целенаправленно сохраняются без прав на запись и выполнение, я согласен с этим. Но "помешать" мне? Это мой компьютер. Я решаю, что я хочу на нем. Может быть, я зациклился на слове "предотвратить". Наличие большой неоновой вывески с надписью «Внимание: если вы отредактируете этот файл, ваша программа больше не будет работать!», не проблема. Не разрешать мне доступ к файлам на моем компьютере без ВАШЕЙ программы и ТОЛЬКО ВАША программа "пускает" меня? У меня есть проблема с этим на философском уровне, и личный опыт подсказывает мне, что обычно это спам/вредоносное ПО. Уточните, чего вы пытаетесь достичь и почему?

как запретить пользователю открывать файлы внутри файла?

Я понятия не имею, что вы имеете в виду, но если вы зашифруете файл перед сохранением, его все равно можно будет открыть в текстовом редакторе, но любая попытка изменить его просто сделает файл недействительным.

Ну, ладно, тогда сохраню в .txt файл, ничего лишнего. дополнительная работа над программой не означает, что она стала лучше.

Спасибо всем за поддержку, это было полезно

Ссылка на файл — это просто часть имени файла после последней точки. Расширение файла — .txt, что обычно указывает на то, что файл содержит текстовые данные. Чтобы создать собственное расширение файла, все, что вам нужно сделать, это поместить желаемое расширение после последней точки в имени файла.

Я проверял файлы в старой игре Warcraft III и увидел, что у них есть файлы с собственным расширением, например, имя файла.w3x .

Как сделать собственное расширение файла и запустить его?

5 ответов 5

Короче говоря: вы создаете собственное расширение файла, добавляя любые буквы в конце имени файла. Вы запускаете его, сообщая вашей ОС, какую программу следует вызывать при двойном щелчке по ней.

Расширение файла — это на самом деле просто буквы после имени файла, в расширении нет ничего волшебного. Во многих файлах, которые я создал на своих машинах с Linux, я даже забыл указать расширение файла.

При этом в Windows расширение файла определяет, что это за файл. Если вы измените расширение файла .mp3, например, на .jpg, Windows будет думать, что это изображение, когда попытается открыть его. Что делает Windows, так это просматривает расширение и отправляет файл в соответствующую программу, связанную с этим файлом. поэтому .mp3 отправляется в iTunes, .jpg — в Paint, .html — в Firefox/Chrome, а .docx — в Word.

С точки зрения создания этих файлов они делятся на две категории. Есть простые текстовые файлы (.html, .txt, .java, .py, .cpp, .config, .xml), а есть бинарные файлы данных (.exe, .mp3, .jpg) (ну, а там представляют собой смесь двоичного и обычного текста, например .docx , но с ними можно обращаться как с двоичными файлами). Когда вы имеете дело с обычными текстовыми файлами (это обычный текст, если Блокнот может его открыть), это очень легко сделать.В зависимости от вашего языка программирования вы просто открываете файл и читаете/записываете строки в файл. С бинарными файлами все немного сложнее, но принцип остается тем же: вы читаете/записываете байты из файла.

Сделать файл определенного типа исполняемым (двойным щелчком по нему), вероятно, самый сложный шаг в зависимости от вашего языка программирования. Если это C или C++, вы просто указываете Windows на свой .exe, и Windows отправляет файл, который вы хотите открыть, в качестве второго аргумента в аргументах основного метода вашей программы. В Java или Python это по-прежнему выполнимо, но вам придется придумать какой-то обходной путь, чтобы Windows открывала среду выполнения или интерпретатор и отправляла аргумент файла в программу.

Microsoft предлагает скудную документацию и инструменты для работы с типами файлов в Windows XP, по-видимому, для защиты чувств начинающего пользователя. По иронии судьбы, однако, это просто создает совершенно новый набор проблем для начинающих и больше хлопот для опытных пользователей. Эта глава книги образцов исправляет эту ситуацию. Вы изучите основы типов файлов, а затем познакомитесь с рядом эффективных методов использования типов файлов для управления файловой системой Windows XP.

Эта глава из книги

Эта глава из книги

Эта глава из книги 

в этой главе

Знакомство с типами файлов

Работа с существующими типами файлов

Создание нового типа файла

Связывание двух или более расширений с одним типом файла

Настройка нового меню

Настройка списка «Открыть с помощью» в Windows XP

Удивительно, но в официальной документации Microsoft длинный список полезных и мощных функций Windows XP либо игнорируется, либо игнорируется. Будь то параметры запуска Windows XP, групповые политики или реестр (и это только три из тех, что я обсуждаю в этой книге), Microsoft предпочитает, чтобы любопытные пользователи сами разбирались во всем этом (разумеется, с помощью своего любимого компьютера). авторы книг).

Тема этой главы является ярким примером. Идею типа файла можно без преувеличения описать как основу файловой системы Windows XP. Мало того, что Microsoft предлагает скудную документацию и инструменты для работы с типами файлов, они также, похоже, изо всех сил стараются скрыть всю концепцию типов файлов. Как обычно, причина в том, чтобы скрыть этот аспект внутренностей Windows XP от чувствительных глаз начинающего пользователя. Однако по иронии судьбы это просто создает совершенно новый набор проблем для начинающих и больше хлопот для опытных пользователей.

В этой главе раскрываются типы файлов. Вы изучите основы типов файлов, а затем познакомитесь с рядом эффективных методов использования типов файлов для управления файловой системой Windows XP.

Знакомство с типами файлов

Чтобы извлечь максимальную пользу из этой главы, вам необходимо иметь представление о том, что такое тип файла и как Windows XP определяет типы файлов и работает с ними. В следующих двух разделах вы найдете все, что вам нужно знать, чтобы пройти оставшуюся часть главы.

Типы файлов и расширения файлов

Один из мифов, который Microsoft пытается навязать пользователям компьютеров, заключается в том, что мы живем в мире, ориентированном на документы. То есть люди заботятся только о документах, которые они создают, а не о приложениях, которые они используют для создания этих документов. Это чистый хулиган. Реальность такова, что приложения по-прежнему слишком сложны в использовании, а возможность обмена документами между приложениями по-прежнему слишком проблематична. Другими словами, вы не сможете создавать документы, пока не изучите все тонкости приложения, и не сможете делиться документами с другими, если не используете совместимые приложения.

К сожалению, мы застряли в преклонении Microsoft перед документом и во всех проблемах, которые это преклонение создает. Хорошим примером является сокрытие расширений файлов. Как вы узнали из главы 2 «Изучение экспертных методов работы с файлами и папками», Windows XP по умолчанию отключает расширения файлов. Вот лишь некоторые из проблем, которые создает это якобы ориентированное на документы решение:

Если у вас есть папка с несколькими документами, использующими одно и то же основное имя, часто бывает трудно определить, какой файл какой. Например, на рис. 3.1 показана папка с 15 различными файлами с именем Project. Windows XP нереалистично ожидает, что пользователи смогут различать файлы, просто изучая их значки.

Невозможность переименовать расширения

Если у вас есть файл с именем index.txt и вы хотите переименовать его в index.html, вы не можете сделать это с отключенными расширениями файлов. Если вы попытаетесь, вы просто получите файл с именем index.html.txt.

Невозможность сохранить документ

Аналогично, если расширения файлов отключены, Windows XP заставляет вас сохранить файл с расширением по вашему выбору, используя расширение по умолчанию, связанное с приложением. Например, если вы работаете в Блокноте, каждый сохраняемый файл должен иметь расширение .txt.

Рисунок 3.1
< /p>

Рис. 3.1. Когда расширения файлов отключены, часто бывает трудно отличить один файл от другого.

СОВЕТ

Существует два способа обойти невозможность сохранения документа с выбранным вами расширением, оба из которых используют элементы управления в диалоговом окне "Сохранить как": Окружите имя файла, который вы хотите использовать, кавычками; или в списке Тип файла выберите параметр Все файлы (*.*), если он существует.

Вы можете решить все эти проблемы, включив расширения файлов. Почему отсутствие расширений файлов вызывает такой ажиотаж? Потому что расширения файлов исключительно и полностью определяют тип файла документа. Другими словами, если Windows XP видит, что файл имеет расширение .txt, она знает, что файл использует тип файла «Текстовый документ». Точно так же файл с расширением .bmp использует тип файла "Растровое изображение".

ПРИМЕЧАНИЕ

Напоминаем, что вы включаете расширения файлов, выбирая команду «Инструменты» проводника Windows, команду «Свойства папки», отображая вкладку «Вид» и снимая флажок «Скрыть расширения файлов для известных типов файлов».

Тип файла, в свою очередь, определяет приложение, связанное с расширением. Если файл имеет расширение .txt, Windows XP связывает это расширение с Блокнотом, поэтому файл всегда будет открываться в Блокноте. Ничто другое, присущее файлу, не определяет тип файла, поэтому, по крайней мере, с точки зрения пользователя, вся файловая система Windows XP держится на плечах скромного расширения файла.

Этот метод определения типов файлов, несомненно, является плохим дизайнерским решением. (Например, есть некоторая опасность, что начинающий пользователь может сделать файл бесполезным, неосторожно переименовав его расширение.) Однако это также приводит к некоторым мощным методам манипулирования файловой системой Windows XP и управления ею, как вы увидите в этом руководстве. глава.

Типы файлов и реестр

Как и следовало ожидать, все, что Windows XP знает о типах файлов, определяется в реестре. (См. главу 8 «Знакомство с реестром Windows XP» для получения подробной информации о понимании и использовании реестра.) В этой главе вы используете реестр для работы с типами файлов, так что давайте посмотрим, как все работает. Откройте редактор реестра и проверьте раздел HKEY_CLASSES_ROOT. Обратите внимание, что он разделен на два раздела:

Первая часть HKEY_CLASSES_ROOT состоит из десятков подразделов расширений файлов (например, .bmp и .txt). В базовой установке Windows XP таких подразделов более 300, а в системе с большим количеством установленных приложений их может быть в два или три раза больше.

Вторая часть HKEY_CLASSES_ROOT перечисляет различные типы файлов, связанные с зарегистрированными расширениями. Когда расширение связано с определенным типом файла, такое расширение считается зарегистрированным в Windows XP.

ПРИМЕЧАНИЕ

HKEY_CLASSES_ROOT также хранит информацию об элементах управления ActiveX в своем подразделе CLSID. Многие из этих элементов управления также имеют соответствующие подразделы во второй половине HKEY_CLASSES_ROOT.

Чтобы понять, что все это значит, взгляните на рис. 3.2. Здесь я выделил ключ .txt, для которого txtfile является значением по умолчанию.

Рисунок 3.2
< /p>

Рис. 3.2. Первая часть ключа HKEY_CLASSES_ROOT содержит подразделы для всех зарегистрированных расширений файлов.

Это значение Default является указателем на связанный с расширением подраздел типа файла во второй половине HKEY_CLASSES_ROOT. На рис. 3.3 показан подраздел txtfile, связанный с расширением .txt. Вот несколько замечаний по подразделу этого типа файла:

Значение Default представляет собой описание типа файла (в данном случае текстовый документ).

Подключ DefaultIcon определяет значок, который отображается с любым файлом, использующим этот тип.

Подключ shell определяет действия, которые можно выполнять с этим типом файла. Эти действия различаются в зависимости от типа файла, но часто используются Открыть и Печать. Действие Открыть определяет приложение, связанное с типом файла. Например, действие Открыть для файла типа "Текстовый документ" выглядит следующим образом:

ПРИМЕЧАНИЕ

%1 в конце команды — это заполнитель, который указывает на открываемый документ (если он есть).Например, если дважды щелкнуть файл с именем memo.txt, заполнитель %1 заменяется на memo.txt, что сообщает Windows чтобы запустить Блокнот и открыть этот файл.

Рисунок 3.3
< /p>

Рис. 3.3. Вторая часть HKEY_CLASSES_ROOT содержит данные о типах файлов, связанных с каждым расширением.

Вкладка "Типы файлов": внешний интерфейс для HKEY_CLASSES_ROOT

Большую часть работы, которую вы выполняете в этой главе, вам не придется иметь дело с ключом реестра HKEY_CLASSES_ROOT напрямую. Вместо этого Windows XP предлагает вкладку диалогового окна, которая действует как внешний интерфейс для этого ключа. Чтобы отобразить эту вкладку, выполните следующие действия:

В проводнике Windows выберите "Инструменты", "Свойства папки", чтобы открыть диалоговое окно "Параметры папки".

ПРИМЕЧАНИЕ

Вы также можете открыть диалоговое окно "Параметры папки", нажав значок "Параметры папки" на панели управления.

Выберите вкладку "Типы файлов".

На рис. 3.4 показана вкладка «Типы файлов». Список зарегистрированных типов файлов показывает все типы файлов, известные для Windows XP, а также их расширения. Когда вы выбираете тип файла, в строке «Открывается с помощью» в области «Подробности» отображается значок и имя программы, связанной с типом файла.

СОВЕТ

Вы можете отсортировать типы файлов, чтобы упростить поиск нужного. В списке «Зарегистрированные типы файлов» щелкните заголовок «Расширения», чтобы выполнить сортировку по расширению, или щелкните заголовок «Типы файлов», чтобы выполнить сортировку по типу файла.

Нам трудно представить, почему кто-то может подумать, что миру нужен еще один формат графических файлов. И, на самом деле, мы не хотим создавать впечатление, что поощряем такое поведение. Но, учитывая тот факт, что люди могут создавать и будут создавать новые форматы, мы хотели бы дать вам несколько советов.

Зачем вообще это рассматривать?

Правда в том, что эта книга даже не включает все сотни малоизвестных форматов, некоторые из которых используются только в частном порядке и остаются внутри стен компании. Компании, желающие, чтобы выпуск их продукции оставался запатентованным, всегда найдут способ сделать это так и, таким образом, продолжат разрабатывать новые форматы.

Разработка собственного формата также поможет вам избежать проблем, если использование чужого формата однажды будет ограничено в судебном порядке. Использование формата файла GIF недавно попало под действие лицензионных ограничений, требующих уплаты роялти за программное обеспечение, которое считывает или записывает формат файла GIF. Уплата этого сбора активно применялась под угрозой судебного иска как владельцами формата GIF, так и владельцами алгоритма сжатия Lempel-Ziv-Welch (LZW), используемого GIF. Помните, что хотя многие форматы кажутся бесплатными и общедоступными, на самом деле таковыми являются очень немногие.

Конечно, существуют функциональные причины для создания собственного формата. Например, вы можете решить, что подходящего формата еще не существует, и, таким образом, почувствовать необходимость создать новый. Однако причины, ведущие к такому решению, всегда вызывают подозрения, и отправка еще одного формата в мир может даже уменьшить вашу долю на рынке в эпоху растущей совместимости и обмена файлами. К сожалению, реальность такова, что форматы файлов обычно создаются для поддержки приложений постфактум. В современном мире маркетинговые решения и предположения о будущем развитии поддерживающей операционной системы и аппаратной платформы играют большую роль в разработке спецификаций программ с самого начала. Поэтому мы настоятельно рекомендуем вам подумать о разработке своего приложения на основе набора существующих форматов или, по крайней мере, модели формата.

Но если нужно.

В связи с этим примите во внимание следующие рекомендации, если вы настаиваете на разработке собственного дизайна:

    Изучайте чужие ошибки. Что бы вы ни думали, вы недостаточно умны, чтобы избегать их всех, если только не увидите их первыми.

Последнее слово

Помните, что уже существует много кода и доступно множество библиотек в исходном виде, которые могут удовлетворить ваши потребности. Рассмотрите это заявление из FAQ (список часто задаваемых вопросов) из группы новостей comp.graphics.misc в Интернете:

Отформатируйте документы для TIFF, IFF, BIFF, NFF, OFF, FITS и т. д. Вам почти наверняка это не понадобится. Прочтите раздел о бесплатном программном обеспечении для обработки изображений. Получите один или несколько из этих пакетов и просмотрите их. Велика вероятность, что конвертер изображений, который вы собирались написать, уже существует.

Эта страница взята из Энциклопедии форматов графических файлов и используется O'Reilly по лицензии Creative Common/Attribution.

Читайте также: