L'apertura di una applicazione, o più nello specifico di un file, è una delle operazioni che vengono ripetute più spesso durante l'utilizzo del PC. Per gli sviluppatori, associare dei file alle applicazioni che sviluppano, è fondamentale: in questo modo i contenuti dei file stesso possono essere protetti e letti/scritti dall'applicazione stessa, l'avvio dell'applicazione può dipendere da un file specifico e così via, il tutto a beneficio dell'utente finale.
Con la Universal Windows Platform è possibile associare una determinata estensione all'applicazione che stiamo sviluppando attraverso l'uso del tab "Declarations" nel file di manifest. All'interno di questo spazio si può aggiungere la capability "File Type Association" che da la possibilità di specificare i seguenti parametri:
- DisplayName: il nome dell'applicazione;
- Logo: il logo da assegnare ai file che possono essere aperti dall'applicazione;
- Info tip: la descrizione da mostrare quando il mouse fa l'hover sopra i file;
- Name: un nome generico da assegnare all'associazione;
- File Type: un elenco di estensioni che vogliamo aggiungere (tutte in minuscolo e con il carattere "." come prefisso) a cui è possibile specificare il content-type.
Una volta avviata l'applicazione, come quella costruita per questo esempio, in cui l'associazione è per i file con estensione ".aspitalia", tutti i file presenti nel sistema operativo verranno aggiornati per rispettare la nuova icona impostata dall'applicazione stessa (a meno che sia una estensione riservata, tipo ".mp3" in cui questo non avviene perché è l'utente a dover scegliere quale applicazione aprire).
Una volta associato il file però, è necessario che l'applicazione lo gestisca in modo adeguato: ad esempio, nel caso in cui sia un file di testo ci si aspetta di navigare ad una pagina in cui sia possibile leggerne i contenuti, mentre nel caso di un file audio, ci si aspetta di ascoltare immediatamente la riproduzione del file. E' possibile registrarsi ad uno degli eventi Activated della Universal Windows Platform per eseguire le operazioni più adeguate secondo la tipologia di file e la nostra logica di business:
protected override async void OnFileActivated(FileActivatedEventArgs args) { base.OnFileActivated(args); var file = (StorageFile)args.Files[0]; var filePath = file.Path; var read = await FileIO.ReadTextAsync(file); /// ... }
L'esempio di codice dovrebbe essere piuttosto esplicativo e, in questo caso, viene solo fatta una operazione di lettura in modalità asincrona del file, una volta recuperato tramite gli argomenti dell'evento OnFileActivated. Una proprietà molto importante che vale la pena sottolineare da questi argomenti, è la NeighboringFilesQuery che consente di restituire elementi simili disponibili nella stessa cartella: nel caso di una galleria di immagini, facendo doppio click su un file si vedrà solo quello selezionato, mentre scorrendo a destra e a sinistra potremmo mostrare le foto provenienti dalla proprietà dei vicini.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Filtering sulle colonne in una QuickGrid di Blazor
Sfruttare al massimo i topic space di Event Grid MQTT
Utilizzare Azure AI Studio per testare i modelli AI
Le novità di Angular: i miglioramenti alla CLI
Utilizzare una qualunque lista per i parametri di tipo params in C#
Usare una container image come runner di GitHub Actions
Usare lo spread operator con i collection initializer in C#
Utilizzare i primary constructor di C# per inizializzare le proprietà
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Criptare la comunicazione con mTLS in Azure Container Apps