как создать пользовательское расширение файла в С#?

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


person MarlonRibunal    schedule 23.04.2009    source источник


Ответы (5)


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

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

person Jon Limjap    schedule 23.04.2009

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

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

person Marc Gravell    schedule 23.04.2009

Возможны две интерпретации вашего вопроса:

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

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

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

Я лично не считаю, что это стоит усилий...

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

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

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

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

person Franci Penov    schedule 23.04.2009

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

или прочтите эту статью codeproject

person Jhonny D. Cano -Leftware-    schedule 23.04.2009
comment
И я бы позволил вашей системе развертывания (например, проекту установки, созданию MSI или тому, что вы используете) позаботиться о точных деталях регистрации. - person peSHIr; 23.04.2009

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

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

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

person Srdjan Jovcic    schedule 23.04.2009