2012-02-03 16 views
6

Java'da, ayrı klasörünü nasıl açabiliriz (örneğin, kullanıcı için bir düğmeyi tıklatmak için c :), örneğin "bu dosyayı diske yerleştir" gibi bir yol veya klasör "bir dosya indirdiğimizde yapar ve nereye kaydedildiğini bilmek isteriz. Amaç, kullanıcının bir tarayıcı açıp dosyayı diskte bulmasına zaman kazandırmaktır. İşte Windows 7'de benim için çalıştı budur: Teşekkür enter image description herejava: Düğmeyi aç düğmesi tıklat

yanıtını aldım (aşağıdaki resim firefox yaptığından bir örnektir) @AlexS için

 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) { 
     } 

Teşekkür

+0

Düzenlenmiş kodunuz, 'if' ifadesiyle korunan blok içinde açılmadıkça bir NullPointerException atabilir. –

cevap

10

Senin bir dosya olduğunu varsayıyorum. java.awt.Desktop ile böyle bir şey kullanabilirsiniz: Eğer hiçbir dizin olan bir dosya ile bu ararsanız en az Windows dosya türleriyle varsayılan program ile dosyayı açmaya edeceğini

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); 
    } 
} 

awrae olun .

Ancak hangi platformların desteklendiğini bilmiyorum.

İlgili konular