Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2009
    Messaggi
    755

    Problema scrittura file e file permission

    Salve, è un problema che seppur risolto (in passato) rattoppando di qua e di là mi porto dietro da un po' di tempo.
    Andiamo un po' nello specifico:
    ho creato un mio giochino in java, un gioco a livelli, come è logico che sia per giocare un determinato livello è necessario che siano stati superati i livelli precedenti.
    Vorrei fare in modo che la partita del gioco possa essere ripresa in un secondo tempo, una sorta di salvataggio progressi in pratica. La mia idea è quella di salvare, ad esempio, il numero del livello corrente in file di testo quindi quando il giocatore decide di riprendere la partita il programma va a leggere il numero nel file e lo riporta al livello dove era rimasto.
    Il problema, come penso abbiate intuito sta nella scrittura su file..Windows limita i permessi dei file in determinate directory.
    Poichè il mio intento è di distrubuire a lavoro finito il gioco, creerò una sorta di installer che inserisca gli eseguibili e il resto di cui essi necessitano nella cartella programmi (ha permessi limitati)..vorrei inserire lì anche il mio "file di configurazione" ma così facendo non riuscirei a scrivere su di esso poichè necessiterebbero i permessi di amministratore.
    Dunque chiedo a voi: come posso fare per raggirare il problema?
    Ci sarebbero varie strade a cui ho pensato:
    -Ho pensato, e in passato ho risolto così per altri miei software, di "installare" il file di configurazione in una cartella libera tipo "Documenti", ma si sa un utente medio vede un file che non riconosce e lo elimina mandando in crash il mio software (tralasciamo il fatto che io potrei gestire l'eccezione del non trovare il file come la rigenerazione di esso e resettando il gioco..ma così il problema potrebbe ripresentarsi). Ovviamente nella cartella programmi (quasi) nessuno andrebbe a smanettare e rompere le scatole..
    -potrei "incapsulare" il jar d'avvio in un exe (esistono tanti programmi ormai che lo fanno) e dire all'installer di dargli i permessi di amministratore..provai una volta e mi sembra che funzionò. Resta comunque il fatto che è, a mio parere, una procedura molto brutta..andrebbe anche a rovinare la portabilità del java stesso (anche se il problema ora lo sto analizzando su Windows).
    Avete altre idee?Consigli?Normalmente qual è la procedura che i programmatori (java) adottano in questi casi?
    Ultima modifica di zipangulu; 13-03-2014 a 02:45

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da zipangulu Visualizza il messaggio
    La mia idea è quella di salvare, ad esempio, il numero del livello corrente in file di testo quindi quando il giocatore decide di riprendere la partita il programma va a leggere il numero nel file e lo riporta al livello dove era rimasto.
    Il problema, come penso abbiate intuito sta nella scrittura su file..Windows limita i permessi dei file in determinate directory.

    Ho pensato, e in passato ho risolto così per altri miei software, di "installare" il file di configurazione in una cartella libera tipo "Documenti", ma si sa un utente medio vede un file che non riconosce e lo elimina mandando in crash il mio software
    In genere, se si tratta di: configurazioni, preferenze, dati o qualunque altra cosa che è "per user", la scelta più semplice in Java è andare a gestire il/i file sotto la directory "home" dell'utente (che attenzione non è la classica "Documenti").
    La "home" dell'utente la si scopre facilmente con una system property Java.

    Io uso abbastanza per lavoro una applicazione Java che è rest-client, per testare i servizi REST che sviluppiamo. Ebbene questa applicazione salva diversi file di configurazione/preferenze in una cartella .rest-client sotto la mia "home".

    Sul mio Windows 7 una cosa del tipo: C:\Users\andrea\.rest-client\....vari-file....

    Potresti fare in maniera simile ...
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Per memorizzare file di configurazione e simili ci sono delle cartelle apposite. Ad esempio, C:\Users\UTENTE\AppData su Windows e /Users/UTENTE/Library/Application Support su Mac OS X.
    Qui dentro non hai bisogno dei permessi di admin per scrivere file dal tuo programma.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.