2012-08-12 26 views

Respuesta

28

Usted puede tener su JFileChooser seleccionar varios archivos y devolver una matriz de objetos de archivo en lugar de uno

JFileChooser chooser = new JFileChooser(); 
chooser.setMultiSelectionEnabled(true); 
chooser.showOpenDialog(frame); 
File[] files = chooser.getSelectedFiles(); 

El método showOpenDialog(frame) sólo devuelve una vez que se hace clic en el botón Aceptar

EDITAR

Haga esto:

JFileChooser chooser = new JFileChooser(); 
chooser.setMultiSelectionEnabled(true); 
chooser.showOpenDialog(frame); 
File[] files = chooser.getSelectedFiles(); 
if(files.length >= 2) { 
    compare(readFileAsList(files[0]), readFileAsList(files[1])); 
} 

y cambiar su readFileAsList a:

private static List<String> readFileAsList(File file) throws IOException { 
    final List<String> ret = new ArrayList<String>(); 
    final BufferedReader br = new BufferedReader(new FileReader(file)); 
    try { 
     String strLine; 
     while ((strLine = br.readLine()) != null) { 
      ret.add(strLine); 
     } 
     return ret; 
    } finally { 
     br.close(); 
    } 
} 
+0

Lo que se obtiene desde el selector de archivos es un conjunto de archivos. puede acceder a ellos usando compare (readFileAsList (archivos [0]), readFileAsList (archivos [1])); pero necesitarías cambiar readFileAsList para aceptar File en lugar de String –

+0

¿cómo puedo hacer eso? – zenx

+0

http://docs.oracle.com/cd/E26232_01/doc.11122/easjavaapi/com/essbase/eas/utils/TextFile.html#readFileAsList_java_io_File__java_lang_String_ Si está utilizando el método integrado de Java, no necesita hacer cualquier cosa, ya que acepta Objetos de archivo Pero es realmente difícil ayudarle sin ver su código actual –

10

Se puede utilizar:

JFileChooser chooser = new JFileChooser(); 
chooser.setMultiSelectionEnabled(true); 

// Show the dialog; wait until dialog is closed 
chooser.showOpenDialog(frame); 

// Retrieve the selected files. 
File[] files = chooser.getSelectedFiles(); 

continuación, puede utilizar los identificadores de archivo volvieron a hacer lo comparan.

+0

Directamente al grano, gracias. –

2

En mi caso lo resolvió declarando marco como una variable local no inicializada como nulas:

JFileChooser chooser = new JFileChooser(); 
chooser.setMultiSelectionEnabled(true); 

Component frame = null; 

chooser.showOpenDialog(frame); 
File[] files = chooser.getSelectedFiles(); 
Cuestiones relacionadas