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

Обновлено: 21.11.2024

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

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

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

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

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

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

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

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

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

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

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

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

Я просматривал файлы в старой игре 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 открывала среду выполнения или интерпретатор и отправляла аргумент файла в программу.

Трудно сказать, о чем здесь спрашивают. Этот вопрос двусмысленный, неопределенный, неполный, слишком широкий или риторический, и на него невозможно дать разумный ответ в его нынешней форме. Чтобы получить разъяснения по этому вопросу, чтобы его можно было открыть снова, посетите справочный центр.

Сообщество рассматривало возможность повторного открытия этого вопроса 5 месяцев назад и оставило его закрытым:

Первоначальные причины закрытия не были устранены

Я работаю над проектом по обработке документов, например Microsoft Word (академический проект).

Есть ли быстрый способ создать собственное расширение файла? Существует ли стороннее программное обеспечение, позволяющее создавать собственные расширения файлов? (например, myfile.funny?)

Что вы имели в виду под "как создать собственное расширение файла"? Расширение — это просто часть имени файла. Если вам нужно расширение типа «ext», просто назовите файл, например, «myFile.ext».

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

@user1853875 просто изменение расширения файла не изменит его внутреннюю структуру. Например, если вы измените расширение какого-либо файла изображения, такого как «someImage.jpg», на «someImage.zip», он не сделает/преобразует его в zip-архив, а просто изменит его имя, чтобы он не был действительным zip-файлом.

3 ответа 3

Расширение файла – это часть имени файла после последней точки.

Например, в пути:

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

В Java вы можете создать файл, используя объект типа File следующим образом:

Файл будет создан в текущем рабочем каталоге и будет иметь расширение txt, поскольку это значение следует после последней точки в имени файла.

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

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

Моя функция AddressBook.Save() может выглядеть примерно так, как этот код Java. Следует отметить, что я не программировал на Java уже несколько лет, и вероятны ошибки.

Если бы у нас была такая запись адреса:

Затем запись появится в файле .address следующим образом

Испытательный Боб 555-1212

Надеюсь, это помогло вам объяснить разницу между расширением файла и форматом файла и каким-то образом показало вам, как создать собственный формат с пользовательским расширением.

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

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

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

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

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

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

Все 9 ответов

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

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

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

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

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

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

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

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

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

Меня всегда интересовало, как можно создать собственное расширение файла?

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

Я не эксперт, но, поскольку никто еще не ответил на этот вопрос, я просто попытаюсь дать вам ответ, который, надеюсь, будет скорее правильным, чем неправильным.

вы видите,
нет такой вещи, как файлы изображений,
или видео файлы или даже текстовые файлы.
все "файлы", по сути, представляют собой набор единиц и нулей

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

Итак, если все файлы содержат одно и то же (1 и 0), то чем они отличаются?
Ну, это вид кодирования, который мы используем.
Стандарт кодирования — это просто способ хранения единиц и нулей для представления: текста, изображений, 3D-файлов и т. д.

PNG – это стандарт, используемый для кодирования данных изображений.
TXT – еще один стандарт, используемый для кодирования, как вы уже догадались, текста.
JPEG – еще один стандарт, который также используется для кодирования данных изображения (еще один способ сделать это). )
и есть еще миллионы
(вы можете буквально пойти в Google и выполнить поиск: спецификации формата файлов PNG, и вы получите все подробности о том, как 1 и 0 хранятся для представления данных пикселей в файлы в формате PNG)

но то, что файл заканчивается на .jpg или .txt,
не означает, что он должен быть закодирован таким образом. вы видите, что эти стандарты именно таковы. стандарты. больше ничего.
то, что существует стандарт png, не означает, что вы должны ему следовать.
при желании вы можете написать эссе в блокноте, а затем сохранить его как "myessay.jpg"

Хотя это может быть плохой идеей, потому что иногда программам нравится "предполагать", как кодируется файл, используя эти расширения. так, например, если вы попытаетесь открыть файл с именем painting.jpg с помощью paint, он, скорее всего, предположит, что это закодированный файл PNG (хотя это не обязательно, так как PNG является очень хорошо известным форматом ).

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

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

например, вы можете написать что-то в блокноте, сохранить как myfile.txt, а затем, просто переименовав его в myfile.myextension,
вы создали свое собственное расширение. поздравляю.

Если вы хотите узнать, как создать свой собственный стандарт кодирования, я настоятельно рекомендую сначала изучить внутренности компьютера и выяснить, как все на самом деле работает "под капотом" :)

Вы действительно задаетесь вопросом, как создать ассоциацию файлов, чтобы Windows знала, что она должна запускать ваше приложение при нажатии на файл с вашим расширением? Если да, погуглите "как создать ассоциацию файлов Windows", чтобы получить различные советы.

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