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
Combinare Container Queries e Media Queries
Gestione file Javascript in Blazor con .NET 9
Creare una libreria CSS universale: Immagini
Selettore CSS :has() e i suoi casi d'uso avanzati
Fornire parametri ad un Web component HTML
Configurare e gestire sidecar container in Azure App Service
Gestire la cancellazione di una richiesta in streaming da Blazor
Applicare un filtro per recuperare alcune issue di GitHub
Gestione degli eventi nei Web component HTML
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Introduzione alle Container Queries
Rendere i propri workflow e le GitHub Action utilizzate più sicure
I più letti di oggi
- .NET Conference Italia 2024 - Milano
- Develop and distribute Azure Functions using K8s and CI/CD
- Disponibile la versione finale di Hyper-V: la virtualizzazione per Windows Server 2008
- Speciale Mastering Entity Framework
- Velocity arriva alla CTP3
- Silverlight Summer: un'estate speciale piena di Style per i controlli Silverlight!
- Disponibile la versione beta di Silverlight 4.0
- Mono 0.13: ora anche web services
- .NET Alerts Software Development Kit