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.