Как создать собственное расширение файла в C #? - PullRequest
6 голосов
/ 23 апреля 2009

Мне нужна помощь в создании собственного расширения файла в моем приложении на C #. Я создал базовое приложение для управления заметками. Прямо сейчас я сохраняю свои заметки как .rtf (note1.rtf). Я хочу иметь возможность создать расширение файла, которое понимает только мое приложение (например, note.not, возможно)

Ответы [ 5 ]

10 голосов
/ 23 апреля 2009

В качестве точки развертывания следует учитывать, что ClickOnce поддерживает расширения файлов (если только он не находится в режиме «только онлайн»). Это упрощает настройку системы для распознавания новых расширений файлов.

Вы можете найти это в свойствах проекта -> Опубликовать -> Параметры -> Ассоциации файлов в VS2008. Если у вас нет VS2008, вы также можете сделать это вручную , но это не весело.

8 голосов
/ 23 апреля 2009

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

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

4 голосов
/ 23 апреля 2009

Есть два возможных толкования вашего вопроса:

Каким должен быть формат файлов моих документов?

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

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

Лично я не посчитал бы, что это стоит усилий ...

Каково расширение имени файла моих документов

В настоящее время вы сохраняете документы в формате RTF с расширением имени файла .rtf. Другие приложения связаны с этим расширением файла, поэтому двойной щелчок по этому файлу в проводнике Windows открывает это приложение вместо вашего.

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

Ассоциации расширений файлов определяются записями в реестре. Вы можете создать их для каждой машины (в HKLM \ Software \ Classes) или для пользователя (в HKCU \ Software \ Classes), хотя для каждой машины это наиболее распространенный случай. Для получения дополнительной информации о реальных записях реестра и ссылках на документацию и примеры MSDN проверьте мой ответ на этот SO вопрос об ассоциациях значков документов Vista .

2 голосов
/ 23 апреля 2009

Я думаю, что это вопрос создания правильных значений реестра,

или проверьте эту статью кода проекта

1 голос
/ 23 апреля 2009

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

Я чувствую, что ваша проблема в том, «Как я могу сохранить файл в формате, отличном от RTF?». Вам придется придумывать свой собственный формат, но на самом деле вы этого не хотите. Вы все еще можете сохранить RTF в файл с именем mynote.not.

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

...