Мне нужна помощь в том, как создать пользовательское расширение файла в моем приложении C#. Я создал базовое приложение для управления заметками. Сейчас я сохраняю свои заметки в формате .rtf (note1.rtf). Я хочу иметь возможность создать расширение файла, которое понимает только мое приложение (например, note.not, может быть)
как создать пользовательское расширение файла в С#?
Ответы (5)
Расширения файлов являются произвольным выбором для ваших форматов, и это действительно зависит только от вашего приложения, регистрирующего определенное расширение файла как файл определенного типа в Windows при установке.
Придумывание собственного формата файла обычно означает, что вы сохраняете этот формат, используя формат, который может анализировать только ваше приложение. Это может быть обычный текст или двоичный файл, и он может даже использовать XML или любой другой формат, суть в том, что ваше приложение должно легко анализировать его.
В качестве точки развертывания следует отметить, что ClickOnce поддерживает расширения файлов (если он не находится в режиме «только в сети»). Это упрощает настройку системы для распознавания новых расширений файлов.
Вы можете найти это в свойствах проекта -> Публикация -> Параметры -> Ассоциации файлов в VS2008. Если у вас нет VS2008, вы также можете сделать это вручную, но это не весело.
Возможны две интерпретации вашего вопроса:
Каким должен быть формат файлов моих документов?
В настоящее время вы сохраняете свои заметки в формате RTF. Независимо от того, какое расширение имени файла вы выберете для их сохранения, любое приложение, которое понимает формат RTF, сможет открыть ваши заметки, если пользователь знает, что они в формате RTF, и указывает этому приложению на этот файл.
Если вы хотите сохранить свои документы в пользовательском формате файла, чтобы другие приложения не могли их прочитать. вам нужно придумать код, который берет поток RTF, созданный элементом управления Rich Edit (я предполагаю, что вы используете его в качестве редактора в своем приложении), и сериализует его в двоичный поток, используя ваш собственный формат.
Я лично не считаю, что это стоит усилий...
Какое расширение имени файла у моих документов
В настоящее время вы сохраняете свои документы в формате RTF с расширением имени файла .rtf. Другие приложения связаны с этим расширением файла, поэтому двойной щелчок по такому файлу в проводнике Windows открывает это приложение вместо вашего.
Если вы хотите иметь возможность дважды щелкнуть файл в проводнике Windows и открыть свое приложение, вам необходимо изменить расширение имени файла, которое вы используете, И создать правильную ассоциацию для этого расширения.
Ассоциации расширений файлов определяются записями в реестре. Вы можете создавать их для каждой машины (в HKLM\Software\Classes) или для каждого пользователя (в HKCU\Software\Classes), хотя чаще всего это делается для каждой машины. Дополнительные сведения о фактических записях реестра и ссылках на документацию и образцы MSDN см. в моем ответе на этот SO вопрос об ассоциациях значков документов Vista.
Я думаю, это вопрос создания правильных значений реестра,
или прочтите эту статью codeproject
Вы можете сохранить файл с любым расширением, которое вы хотите, просто укажите его в имени файла при сохранении файла.
Я чувствую, что ваша проблема заключается в том, «Как я могу сохранить файл во что-то, кроме RTF?». Вам придется изобретать свой собственный формат, но на самом деле вы этого не хотите. Вы по-прежнему можете сохранить RTF в файл с именем mynote.not.
Я бы посоветовал вам продолжать использовать формат, который читается из других программ. Ваши пользователи будут благодарны, если захотят сделать со своими заметками что-то, что не поддерживается вашей программой.