E 'possibile fare apparire una cartella e comportarsi come un file?

1

Sto sviluppando un'applicazione desktop che salva i suoi progetti su disco. I progetti contengono più file, come json e jpg ecc.

Soluzione corrente: file zippato

Li sto "zippando" tutti insieme in un singolo file . Esempio:

filename.project            <- compressed zip
  manifest.json             <- compressed contents
  file1.jpg                 

Soluzione ideale: cartella non compressa

Mi chiedo se è possibile inviare i dati, non compressi, in una cartella e in qualche modo configurare il mio sistema operativo per trattare quella cartella come un singolo file ? Esempio:

filename.project            <- folder, but it gets treated like a file
  manifest.json             <- uncompressed contents
  file1.jpg

Definizione di "Trattato come un singolo file":

  • Finder mostra un'icona personalizzata
  • Facendo doppio clic si apre l'associazione file
  • Le finestre di dialogo "Apri" possono selezionare questo file

Altri esempi

Sul mio Mac, ci sono 2 esempi in cui vedo succedere questo:  - Tutte le app vengono visualizzate come .app file, ma internamente sono cartelle che posso esplorare tramite Terminal  - 1Password memorizza il suo archivio password in una cartella .agilekeychain , che si sincronizza su Dropbox come cartella, ma appare nel Finder come un singolo file.

    
posta Scott Rippey 18.10.2018 - 17:34
fonte

1 risposta

2

Le informazioni sugli sviluppatori Apple dicono sì, puoi sicuramente creare il tuo pacchetto o bundle. Sembra come se vuoi un pacchetto .

Pacchetto vs bundle è discusso qui.

Fondamentalmente - registra il tuo pacchetto con il sistema, in modo che le cartelle con l'estensione vengano visualizzate come un pacchetto piuttosto che come una cartella (application info.plist deve impostare correttamente la chiave LSTypeIsPackage per ciascuno dei tipi di file del pacchetto che devi creare ). Quindi imposta la tua app automaticamente (utilizzando NSFileWrapper ) o crea manualmente il pacchetto stesso al salvataggio.

    
risposta data 18.10.2018 - 18:50
fonte

Leggi altre domande sui tag