2012-04-10 23 views
25

Sono un principiante di Java. Sto cercando di scegliere dinamicamente il percorso del file per salvare il risultato del mio progetto (da avviare all'inizio del mio progetto). Ho lavorato con alcuni esempi di FileDialog, ma ognuno di essi mi consente di scegliere un file e non una cartella.Selezione della destinazione della cartella in Java?

Qualcuno può aiutarmi con un esempio (o) collegamento a uno per lo stesso?

+1

Ok, questo è un buon inizio. Sembra che tu abbia fatto qualche ricerca. Puoi includere alcuni esempi di ciò che hai provato? Ciò aiuterà gli altri a lavorare con ciò che già sai. – jmort253

+0

Sure Will..Gli un momento – Sam

risposta

49

Si potrebbe provare qualcosa di simile (come mostrato qui: Select a Directory with a JFileChooser):

import javax.swing.*; 
import java.awt.event.*; 
import java.awt.*; 
import java.util.*; 


public class DemoJFileChooser extends JPanel 
    implements ActionListener { 
    JButton go; 

    JFileChooser chooser; 
    String choosertitle; 

    public DemoJFileChooser() { 
    go = new JButton("Do it"); 
    go.addActionListener(this); 
    add(go); 
    } 

    public void actionPerformed(ActionEvent e) {    
    chooser = new JFileChooser(); 
    chooser.setCurrentDirectory(new java.io.File(".")); 
    chooser.setDialogTitle(choosertitle); 
    chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
    // 
    // disable the "All files" option. 
    // 
    chooser.setAcceptAllFileFilterUsed(false); 
    //  
    if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) { 
     System.out.println("getCurrentDirectory(): " 
     + chooser.getCurrentDirectory()); 
     System.out.println("getSelectedFile() : " 
     + chooser.getSelectedFile()); 
     } 
    else { 
     System.out.println("No Selection "); 
     } 
    } 

    public Dimension getPreferredSize(){ 
    return new Dimension(200, 200); 
    } 

    public static void main(String s[]) { 
    JFrame frame = new JFrame(""); 
    DemoJFileChooser panel = new DemoJFileChooser(); 
    frame.addWindowListener(
     new WindowAdapter() { 
     public void windowClosing(WindowEvent e) { 
      System.exit(0); 
      } 
     } 
    ); 
    frame.getContentPane().add(panel,"Center"); 
    frame.setSize(panel.getPreferredSize()); 
    frame.setVisible(true); 
    } 
} 
+0

Grazie mille Ragazzi ... Esattamente quello di cui avevo bisogno .. Volevo fare qualcosa con i punti "Utilità di questa risposta" per voi .. Ma a quanto pare ho bisogno di 15 punti reputazione :( – Sam

+0

@ Sam: Solitamente spuntare il segno verde "molto buono" sotto il punteggio di risposta fa il trucco – npinti

+0

Per cosa viene usato 'int risultato? – user2084795

9

provare qualcosa di simile

JFileChooser chooser = new JFileChooser(); 
chooser.setCurrentDirectory(new java.io.File(".")); 
chooser.setDialogTitle("select folder"); 
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
chooser.setAcceptAllFileFilterUsed(false); 
+0

Grazie mille .. Fammi iniziare a sperimentare in questa direzione – Sam

+0

Qual è il punto di "chooser.setCurrentDirectory (new java.io.File (". "));" linea. Davvero non capisco – cssGEEK

+2

@ cssGEEK forse è troppo tardi per rispondere, ma fa in modo che la finestra di dialogo inizi nella directory corrente. In Unix (almeno), ogni directory ha una cartella chiamata '.' e una cartella chiamata' ..'. Il primo è un riferimento alla stessa directory e il secondo è la directory principale. In Java, la stringa che assegni al costruttore di 'File' è un percorso relativo se non inizia con'/'(Unix) o' X: \ '(Windows), quindi se lo dai". ", è una cartella relativa a dove si trova la directory corrente del programma. Ciò farà in modo che il selettore punti alla directory corrente in cui è in esecuzione il programma. –

20

Oracoli Java Tutorial per File Choosers: http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html

Nota getSelectedFile() restituisce la cartella selezionata, nonostante il nome. getCurrentDirectory() restituisce la directory della cartella selezionata.

import javax.swing.*; 

public class Example 
{ 
    public static void main(String[] args) 
    { 
     JFileChooser f = new JFileChooser(); 
     f.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
     f.showSaveDialog(null); 

     System.out.println(f.getCurrentDirectory()); 
     System.out.println(f.getSelectedFile()); 
    }  
} 
0

ho trovato un buon esempio di ciò che è necessario in this link.

import javax.swing.JFileChooser; 

public class Main { 
    public static void main(String s[]) { 
    JFileChooser chooser = new JFileChooser(); 
    chooser.setCurrentDirectory(new java.io.File(".")); 
    chooser.setDialogTitle("choosertitle"); 
    chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
    chooser.setAcceptAllFileFilterUsed(false); 

    if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { 
     System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory()); 
     System.out.println("getSelectedFile() : " + chooser.getSelectedFile()); 
    } else { 
     System.out.println("No Selection "); 
    } 
    } 
} 
Problemi correlati