2009-04-23 13 views
5

Ho bisogno di aiuto su come creare un'estensione di file personalizzata nella mia app C#. Ho creato un'applicazione per la gestione delle note di base. In questo momento sto salvando le mie note come .rtf (nota1.rtf). Voglio essere in grado di creare un'estensione di file che solo la mia app comprende (come, nota.non, forse)come creare un'estensione di file personalizzata in C#?

+0

BTW, cos'è un'estensione "personalizzata" rispetto all'altro tipo (qualunque sia l'altro tipo)? –

+0

@John - Vedi le risposte di Jon Limjap e Franci Penov :-) – MarlonRibunal

risposta

8

Le estensioni di file sono una scelta arbitraria per i tuoi formati e dipendono solo dalla tua applicazione che registra un determinato file estensione come file di un certo tipo in Windows, al momento dell'installazione.

Fornire il proprio formato di file di solito significa salvare tale formato utilizzando un formato che solo l'applicazione può analizzare. Può essere in formato testo o binario e può persino utilizzare XML o qualsiasi formato, il punto è che la tua app dovrebbe essere in grado di analizzarlo facilmente.

2

penso che sia una questione di creare i valori del registro Giusto,

o controllare questo codeproject's article

+0

E vorrei che il tuo sistema di implementazione (come un progetto di installazione, generazione di un MSI o qualunque cosa tu usi) si occupi dei dettagli esatti della registrazione. – peSHIr

1

È possibile salvare il file con qualsiasi estensione che si desidera, basta metterlo in nome del file durante il salvataggio del file.

Sento che il tuo problema è "Come posso salvare file in qualcosa di diverso da RTF?". Dovrai inventare il tuo formato, ma in realtà non lo vuoi. È ancora possibile salvare RTF nel file mynote.not.

Si consiglia di continuare a utilizzare il formato che è leggibile da altri programmi. I tuoi utenti saranno grati quando vogliono fare qualcosa con le loro note che non sono supportate dal tuo programma.

4

Ci sono due possibili interpretazioni della sua domanda:

quello che dovrebbe essere il formato del file dei miei documenti?

Attualmente si salvano le note nel formato RTF. Indipendentemente dall'estensione del nome file che scegli di salvarli, qualsiasi applicazione che comprenda il formato RTF sarà in grado di aprire le tue note, purché l'utente sappia che si trova in formato RTF e indirizza l'app a quel file.

Se si desidera salvare i documenti in un formato file personalizzato, in modo che altre applicazioni non possano leggerli. devi creare un codice che tenga il flusso RTF prodotto dal controllo Rich Edit (presumo sia quello che usi come editor nella tua app) e lo serializzi in un flusso binario usando il tuo formato.

Io personalmente non considerare questo vale la pena ...

Qual è l'estensione del file dei miei documenti

Stai salvando i documenti in formato RTF con estensione .rtf nome di file . Altre applicazioni sono associate a tale estensione di file, quindi facendo doppio clic su tale file in Esplora risorse si apre quell'applicazione al posto dell'utente.

Se si desidera poter fare doppio clic sul file in Esplora risorse e aprire l'app, è necessario modificare l'estensione del nome file utilizzata E creare l'associazione corretta per tale estensione.

Le associazioni di estensione di file sono definite dalle voci nel Registro di sistema. È possibile creare questi per macchina (in HKLM \ Software \ Classes) o per utente (in HKCU \ Software \ Classes), sebbene la macchina per computer sia il caso più comune.Per ulteriori dettagli sulle voci effettive di registro e collegamenti alla documentazione e agli esempi MSDN, controllare la risposta a questo SO question on Vista document icon associations.

9

Come punto di implementazione, si noti che ClickOnce supporta le estensioni di file (purché non sia in modalità "solo online"). Questo rende semplicissimo configurare il sistema per riconoscere le nuove estensioni di file.

È possibile trovare questo nelle proprietà del progetto -> Pubblica -> Opzioni -> Associazioni file in VS2008. Se non hai VS2008 puoi anche do it manually, ma non è divertente.

Problemi correlati