Buonasera a tutti,
la mia app una un DB sqlite che ho posizionato in DirInternal ma che vorrei anche importare ed esportare in una cartella esterna accessibile per backup e ripristini.
Prima di eseguire le operazioni devo aprire il DB e leggere la data dell'ultima modifica in modo da mantenere il più recente e gestire conflitti.
Sto cercando di utilizzare la libreria ExternalStorage che mi sta facendo impazzire: possibile che non c'è modo di recuperare il percorso completo di directory in modo ca caricare il DB direttamente dal percorso esterno senza doverlo per forza copiare nella DirInternal?
Semplicemente puoi creare un cartella sotto DirInternal una nuova cartella bck
Copi il file in questa cartella , lo apri dalla tua app, leggi il valore di data aggiornamento, lo confronti con quello attuale della DirInternal, e decidi di sovrascriverlo oppure no in base al risultato ottenuto
In pratica non dovrebbe essere necessario nemmeno conoscere la data di ultimo aggiornamento, l'app dovrebbe lavorare esclusivamente su quello "interno" e in caso di necessità, per ripristinare, sostituire quello interno con quello esterno.
Non capisco come vorresti, invece, che dovrebbe funzionare l'app.
Semplicemente puoi creare un cartella sotto DirInternal una nuova cartella bck
Copi il file in questa cartella , lo apri dalla tua app, leggi il valore di data aggiornamento, lo confronti con quello attuale della DirInternal, e decidi di sovrascriverlo oppure no in base al risultato ottenuto
Ok alla fine credo che sceglierò questa soluzione.
Per evitare la copia del file pensavo, in occazione dell' esportazione del DB sulla Dir esterna, di aggiungere il timestamp al nome del file.
in questo modo potrei capire rapidamente qual'è quello più recente e protrei anche gestire più di un backup.
Risolto tutto con la copia dalla cartella DirInternal.
Ora ho un'altra domanda: ho visto dagli esempi che utilizzando ContentChooser nella finestra di selezione del percorso possono essere selezionati anche i cloud (Google Drive, Dropbox, ecc), mentre con la libreria ExternalStorage vedo solo le directory del dispositivo.
C'è un modo per utilizzare i cloud anche con ExternalStorage?
So che questa risposta "aiuterà ben poco" (eufemismo), ma direi proprio di no.
Non ho riletto, ma direi che dovrai per forza offrire due possibilità diverse, una per supporti fisici esterni (con la ExternalStorage) e un'altra per "percorsi cloud".