문제

C# 앱에서 사용자 정의 파일 확장을 만드는 방법에 도움이 필요합니다. 기본 노트 관리 앱을 만들었습니다. 지금은 내 메모를 .rtf (note1.rtf)로 저장하고 있습니다. 내 앱 만 이해하는 파일 확장자를 만들 수 있기를 원합니다 (예 : Note.not, 아마도)

도움이 되었습니까?

해결책

파일 확장자는 형식에 대한 임의의 선택이며, 설치시 Windows의 특정 유형의 파일로 특정 파일 확장을 등록하는 응용 프로그램에만 의존합니다.

자신의 파일 형식을 고안하면 일반적으로 응용 프로그램 만 구문 분석 할 수있는 형식을 사용하여 해당 형식을 저장합니다. 일반 텍스트 나 이진으로 일할 수 있으며 XML 또는 모든 형식을 사용할 수도 있습니다. 요점은 앱이 쉽게 구문 분석 할 수 있어야합니다.

다른 팁

배포 지점으로 ClickOnce는 파일 확장을 지원합니다 ( "온라인 전용"모드가 아닌 한). 따라서 새 파일 확장을 인식하도록 시스템을 구성하는 것이 바람이 불고 있습니다.

이를 프로젝트 속성 -> 게시 -> 옵션 -> 파일 연결에서 찾을 수 있습니다. VS2008이 없다면 또한 할 수도 있습니다 수동으로 수행하십시오, 그러나 재미가 아닙니다.

질문에 대한 두 가지 가능한 해석이 있습니다.

내 문서의 파일 형식은 무엇입니까?

현재 노트를 RTF 형식으로 저장하고 있습니다. 어떤 파일 이름 확장자를 저장하기로 선택하든 RTF 형식을 이해하는 응용 프로그램은 사용자가 RTF에 있다는 것을 알고 해당 파일에 앱을 가리키는 한 메모를 열 수 있습니다.

문서를 사용자 정의 파일 형식으로 저장하려면 다른 응용 프로그램이 읽을 수 없도록하십시오. Rich Edit Control에서 생성 된 RTF 스트림 (앱에서 편집기로 사용하는 것으로 가정 함)에서 생성 된 RTF 스트림을 취하는 코드를 제시하고 자신의 형식을 사용하여 이진 스트림으로 직렬화해야합니다.

나는 개인적 으로이 노력의 가치가 있다고 생각하지 않을 것입니다 ...

내 문서의 파일 이름 확장은 무엇입니까?

현재 .rtf 파일 이름 확장자로 문서를 RTF 형식으로 저장하고 있습니다. 다른 응용 프로그램은 해당 파일 확장자와 관련되므로 Windows 탐색기의 해당 파일을 두 번 클릭하면 해당 응용 프로그램이 대신 해당 응용 프로그램이 열립니다.

Windows 탐색기에서 파일을 두 번 클릭하고 앱을 열 수 있으려면 사용중인 파일 이름 확장자를 변경하고 해당 확장에 대한 적절한 연관성을 만들어야합니다.

파일 확장 연관은 레지스트리의 항목으로 정의됩니다. Machine 당 가장 일반적인 경우이지만 이러한 대구당 (HKLM Software Classes) 또는 사용자 당 사용자 (HKCU Software Classes)를 만들 수 있습니다. 실제 레지스트리 항목 및 MSDN 문서 및 샘플에 대한 링크에 대한 자세한 내용은 이에 대한 답변을 확인하십시오. Vista 문서 아이콘 협회에 대한 질문.

올바른 레지스트리 값을 만드는 것이 문제라고 생각합니다.

또는 이것을 확인하십시오 CodeProject의 기사

원하는 확장자로 파일을 저장할 수 있습니다. 파일을 저장할 때 파일 이름으로 넣으십시오.

귀하의 문제는 "RTF 이외의 다른 것으로 파일을 저장하는 방법"입니다. 당신은 자신의 형식을 발명해야하지만 실제로는 그것을 원하지 않습니다. RTF를 MyNote.not라는 파일에 저장할 수 있습니다.

다른 프로그램에서 읽을 수있는 형식을 계속 사용하는 것이 좋습니다. 귀하의 프로그램에서 지원하지 않는 메모로 무언가를하고 싶다면 사용자가 감사 할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top