Ho un progetto da fare per il mio master e ho bisogno di fare un'app Java che carica un file (leggi alcuni attributi e copia il file in una directory funzionante), praticamente qualsiasi file, e rende privata la directory di lavoro. Per privato intendo nascondere quella directory in un modo diverso da qualsiasi sistema operativo (beh, in pratica Windows e Linux). Non sono sicuro che le funzioni OS (Windows e Linux) per nascondere le directory funzionino perché un amministratore / superutente può modificare tali impostazioni e accedere facilmente ai miei file.
L'idea per il progetto è di avere accesso esclusivo a quei file caricati dall'app e di renderli disponibili per le applicazioni installate localmente per aprirle / eseguirle (come "Open in media player"), che dovrebbe funzionare anche quando copio l'app su una penna USB.
Ho 2 opzioni:
1. modifica ogni file dopo averlo caricato per renderlo illeggibile al mondo e annullare le modifiche ogni volta che premo "Apri" dall'interno dell'app;
2. (che ritengo sia l'opzione migliore e più semplice) Modificare la directory root di quei file (root = la directory di lavoro o qualche sottodirectory di esso) per essere illeggibile / inaccessibile per il mondo mentre si trova all'esterno dell'app e leggibile per l'app in fase di runtime.
Ho pensato a qualcosa come fare una copia localmente crittografata degli attributi del file system della directory, "cancellarli" mentre non sono in fase di runtime dell'app e rimetterli indietro durante il runtime dell'applicazione. Ma non ho mai giocato con questo prima e anche Windows & Il filesystem di Linux non è affatto semplice. Inoltre, una chiavetta USB ha un filesystem FAT (che se non ho torto "appartiene" a DOS), che è, sì, un altro filesystem nell'equazione.
Sono quasi sicuro che non sia fattibile (e non sicuro!) semplicemente riprodurre avanti e indietro con il filesystem a mio piacimento, quindi ho bisogno di alcune idee per trovare quella svolta senza rompere nulla.