Visualizzazione dei risultati da 1 a 9 su 9

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2016
    Messaggi
    31
    Quote Originariamente inviata da andbin Visualizza il messaggio
    La questione innanzitutto � su cosa basarsi. La tua applicazione potrebbe girare su Windows, su Linux, su Mac ... non lo so. Quindi: a) non puoi schiantare un path assoluto nel codice, b) non puoi pensare di poter scrivere ovunque ti pare sul disco.

    Generalmente � tipico basarsi sulla "home" directory dell'utente, che � un concetto generico e presente su credo tutti i sistemi (non ho esperienza personale con i Mac ma la home directory esiste di certo anche l�).
    Sotto la home directory molte applicazioni tipicamente tengono dati e configurazioni varie. E tipico che una applicazione crei sotto la home una directory con nome nella forma .nomeapp (nota il punto iniziale). Sotto questa, la applicazione mette e struttura file e directory come gli pare.

    In Java la home directory si rintraccia con la System property "user.home". A livello di codice bastano poche righe:

    codice:
    File appConfDir = new File(System.getProperty("user.home", ".nometuaapp");
    File appImagesDir = new File(appConfDir, "images");
    appImagesDir.mkdirs();

    mkdirs() assicura che la catena di directory venga creata (se una o pi� cartelle non esistessero). Nota: restituisce un boolean, andrebbe testato.
    Ho inserito quel codice nel main ed effettivamente mi ha creato la cartella images nella cartella col mio nome utente. Al posto di .nometuaapp ho messo .discipline ma questa invece dove sta? Io appena apro utente vedo solo images. Comunque adesso che ho la mia directory, nel momento in cui aggiungo una nuova disciplina, la mia immagine deve finire l� e da l� deve essere caricata, corretto?
    Ora, io col filechooser seleziono l'immagine e la copio in images, ma mi serve il percorso di images per poterlo fare... Come lo ricavo? Non posso mettere il mio perch� sarebbe appunto diverso per altri utenti... Grazie ancora

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da raissa95 Visualizza il messaggio
    Ho inserito quel codice nel main ed effettivamente mi ha creato la cartella images nella cartella col mio nome utente. Al posto di .nometuaapp ho messo .discipline ma questa invece dove sta? Io appena apro utente vedo solo images.
    Scusa ... vedo adesso, ho scritto al volo il codice prima ma manca una parentesi

    Questo è corretto:

    File appConfDir = new File(System.getProperty("user.home"), ".nometuaapp");
    File appImagesDir = new File(appConfDir, "images");
    appImagesDir.mkdirs();


    P.S. cerca anche di capire il senso di queste costruzioni di File.

    Quote Originariamente inviata da raissa95 Visualizza il messaggio
    Comunque adesso che ho la mia directory, nel momento in cui aggiungo una nuova disciplina, la mia immagine deve finire l� e da l� deve essere caricata, corretto?
    Ora, io col filechooser seleziono l'immagine e la copio in images, ma mi serve il percorso di images per poterlo fare... Come lo ricavo? Non posso mettere il mio perch� sarebbe appunto diverso per altri utenti... Grazie ancora
    L'utente con il file chooser ti può specificare un qualunque percorso ad una immagine, potenzialmente ovunque nel file-system (o addirittura da altro disco). Spetta a TE copiare il file immagine nella "images" nota alla applicazione.
    C'è solo una questione: le immagini staranno TUTTE direttamente nella images o pensi di strutturarle tramite una qualche logica di suddivisione per directory?? Questo idem spetta a TE.
    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
    Registrato dal
    Dec 2016
    Messaggi
    31
    Sisi mi ero accorta della parentesi e avevo sistemato. Le mie domande sono 2:
    1) .discipline cosa rappresenta? cioè mentre images è la cartella che viene creata nel mio percorso utente, discipline invece dove sta? cosa è?
    2) sisi come hai detto tu uso un filechooser che mi seleziona l'immagine che si può trovare ovunque, poi io prendo quel file e lo devo copiare nella cartella images e lo so fare solo che mi serve il percorso di images, come lo ricavo? Mi serve proprio il percorso.
    Comunque rispondendo alla tua domanda, voglio mettere tutte le immagini delle discipline dentro images e basta, non voglio complicare le cose, anche perchè sono le uniche immagini che può gestire l'utente, il resto è fisso.

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da raissa95 Visualizza il messaggio
    1) .discipline cosa rappresenta? cioè mentre images è la cartella che viene creata nel mio percorso utente, discipline invece dove sta? cosa è?
    Su Windows la home di un utente è qualcosa es. C:\Users\Andrea

    Quindi con il pezzo di codice mostrato, otterresti una directory es.:

    C:\Users\Andrea\.discipline\images

    Sotto la home ci possono essere svariate cartelle .qualcosa (di altre applicazioni). Quindi un .discipline distingue la TUA applicazione. Sotto la tua directory, ovviamente ci fai e metti quello che vuoi. E una "images" può essere inutile o utile a seconda di cosa eventualmente altro ci potresti voler mettere.

    Quote Originariamente inviata da raissa95 Visualizza il messaggio
    2) sisi come hai detto tu uso un filechooser che mi seleziona l'immagine che si può trovare ovunque, poi io prendo quel file e lo devo copiare nella cartella images e lo so fare solo che mi serve il percorso di images, come lo ricavo?
    Il pezzo di codice che ti ho mostrato ti fornisce un java.io.File (che è solo un pathname) della directory "images".
    Questo lo puoi usare per creare un altro File che rappresenta un file composto con:

    File imgFile = new File(appImagesDir, "blabla.png");

    Ovviamente "blabla.png" è come esempio. Nel tuo caso il nome base+estensione ti arriverà dal file chooser.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2016
    Messaggi
    31
    Grazie infinite, ci sono riuscita! Mi sono resa conto della grandissima cretinata che avevo detto nel post iniziale! Grazie ancora per la tua disponibilita'

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.