2012-02-03 45 views
6

Trong java, làm cách nào để mở một thư mục riêng biệt (ví dụ c :) cho người dùng khi nhấp vào nút, ví dụ như cách "định vị tệp này trên đĩa" hoặc "mở chứa thư mục "hiện khi chúng tôi tải xuống một tệp và chúng tôi muốn biết nơi tệp được lưu. Mục đích là để tiết kiệm thời gian của người dùng để mở trình duyệt và định vị tệp trên đĩa. Cảm ơn (hình ảnh dưới đây là một ví dụ từ những gì firefox không) enter image description herejava: Mở thư mục trên nút bấm

tôi có câu trả lời: Đây là những gì làm việc cho tôi trong 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) { 
     } 

Nhờ @AlexS

+0

Mã đã chỉnh sửa của bạn có thể ném NullPointerException, trừ khi bạn mở nó trong khối được bảo vệ bởi câu lệnh 'if'. –

Trả lời

10

Tôi cho rằng bạn có một tập tin. Với java.awt.Desktop bạn có thể sử dụng một cái gì đó như thế này:

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

Hãy awrae rằng nếu bạn gọi này với một tập tin mà không có thư mục ít nhất là Windows sẽ cố gắng mở file với chương trình mặc định cho filetype .

Nhưng tôi không biết nền tảng nào được hỗ trợ.

Các vấn đề liên quan