2016-09-07 4 views
2

Прежде всего, мне жаль, если этот вопрос задан раньше или есть документация по этой теме, но я ничего не нашел. Я хочу сделать приложение Windows, которое откроет Windows Explorer, и вы можете просматривать, а затем выбрать mp3-файл, чтобы вы могли воспроизвести его (и воспроизвести) в этой программе. Я знаю, как открыть файловый менеджер, это мой код:Получить путь к файлу через файл explorer

import java.awt.Desktop; 
import java.io.File; 
import java.io.IOException; 
    public class Main 
     { 
      public static void main(String[] args) throws IOException { 
       Desktop desktop = Desktop.getDesktop(); 
       File dirToOpen = null; 
       try { 
        dirToOpen = new File("c:\\"); 
        desktop.open(dirToOpen); 
       } catch (IllegalArgumentException iae) { 
        System.out.println("File Not Found"); 
       } 
      } 
     } 

Но я не знаю, как выбрать mp3-файл, а затем получить путь к файлу, так что я могу играть позже.

ответ

2

Я не думаю, что вы приближаетесь к этому правилу. Вы должны использовать что-то вроде FileDialog выбрать файл:

FileDialog fd = new FileDialog(new JFrame()); 
fd.setVisible(true); 
File[] f = fd.getFiles(); 
if(f.length > 0){ 
    System.out.println(fd.getFiles()[0].getAbsolutePath()); 
} 

Так как вы только получаете 1 MP3-файл, вам нужно только первый индекс массива файла, возвращаемый из метода getFiles(). Поскольку это модальный диалог, остальная часть вашего приложения будет ждать, пока вы не выберете файл. Если вы хотите получить сразу несколько файлов, просто пройдите через этот вышеупомянутый массив Files.

Смотрите документацию здесь: https://docs.oracle.com/javase/7/docs/api/java/awt/FileDialog.html

+0

и проверить размер массива файлов - это может быть 0. –

+0

@MikeBaranczak Спасибо за головы. Там немного лениво. –

+0

Да, я не знал о FileDialog. Это хорошее решение. Большое спасибо ! – Copacel