2012-02-03 13 views
6

En java, ¿cómo podemos abrir una carpeta separada (por ejemplo, c :) para el usuario al hacer clic, por ejemplo, la forma "localizar este archivo en el disco" o "abrir que contiene carpeta "hace cuando descargamos un archivo y queremos saber dónde se guardó. El objetivo es ahorrar tiempo al usuario para abrir un navegador y ubicar el archivo en el disco. Gracias (imagen de abajo es un ejemplo de lo que hace Firefox) enter image description herejava: Abra la carpeta en el botón clic

Tengo la respuesta: Esto es lo que funcionó para mí en Windows 7:

 File foler = new File("C:\\"); // path to the directory to be opened 
     Desktop desktop = null; 
     if (Desktop.isDesktopSupported()) { 
     desktop = Desktop.getDesktop(); 
     } 

     try { 
     desktop.open(foler); 
     } catch (IOException e) { 
     } 

Gracias a @AlexS

+0

Su código editado puede arrojar una NullPointerException, a menos que la abra dentro del bloque protegido por la instrucción 'if'. –

Respuesta

10

Supongo que tienes un archivo. Con java.awt.Desktop se puede usar algo como esto:

public static void openContaiingFolder(File file) { 
    String absoluteFilePath = file.getAbsolutePath(); 
    File folder = new File(absoluteFilePath.substring(0, absoluteFilePath.lastIndexOf(File.separator))); 
    openFolder(folder); 
} 

public static void openFolder(File folder) { 
    if (Desktop.isDesktopSupported()) { 
     Desktop.getDesktop().open(folder); 
    } 
} 

Sé awrae que si se llama a esto con un archivo que hay al menos directorio de Windows intentará abrir el archivo con el programa predeterminado para el tipo de archivo .

Pero no sé en qué plataformas es compatible.

Cuestiones relacionadas