2012-04-10 30 views
25

Tôi là người mới sử dụng Java. Tôi đang cố gắng tự động chọn vị trí tệp để lưu kết quả của dự án của tôi (được bắt đầu ngay từ đầu dự án của tôi). Tôi đã làm việc xung quanh với một vài ví dụ FileDialog, nhưng mỗi một trong số chúng cho phép tôi chọn một tập tin chứ không phải một thư mục.Chọn đích thư mục trong Java?

Bất cứ ai có thể vui lòng giúp tôi với một ví dụ (hoặc) liên kết với một cho giống nhau không?

+1

Ok, đây là một khởi đầu tốt. Có vẻ như bạn đã thực hiện một số nghiên cứu. Bạn có thể bao gồm một số ví dụ về những gì bạn đã thử không? Điều đó sẽ giúp người khác làm việc với những gì bạn đã biết. – jmort253

+0

Chắc chắn Will..Give Me một khoảnh khắc – Sam

Trả lời

49

Bạn có thể thử một cái gì đó như thế này (như ở đây: Select a Directory with a JFileChooser):

import javax.swing.*; 
import java.awt.event.*; 
import java.awt.*; 
import java.util.*; 


public class DemoJFileChooser extends JPanel 
    implements ActionListener { 
    JButton go; 

    JFileChooser chooser; 
    String choosertitle; 

    public DemoJFileChooser() { 
    go = new JButton("Do it"); 
    go.addActionListener(this); 
    add(go); 
    } 

    public void actionPerformed(ActionEvent e) {    
    chooser = new JFileChooser(); 
    chooser.setCurrentDirectory(new java.io.File(".")); 
    chooser.setDialogTitle(choosertitle); 
    chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
    // 
    // disable the "All files" option. 
    // 
    chooser.setAcceptAllFileFilterUsed(false); 
    //  
    if (chooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) { 
     System.out.println("getCurrentDirectory(): " 
     + chooser.getCurrentDirectory()); 
     System.out.println("getSelectedFile() : " 
     + chooser.getSelectedFile()); 
     } 
    else { 
     System.out.println("No Selection "); 
     } 
    } 

    public Dimension getPreferredSize(){ 
    return new Dimension(200, 200); 
    } 

    public static void main(String s[]) { 
    JFrame frame = new JFrame(""); 
    DemoJFileChooser panel = new DemoJFileChooser(); 
    frame.addWindowListener(
     new WindowAdapter() { 
     public void windowClosing(WindowEvent e) { 
      System.exit(0); 
      } 
     } 
    ); 
    frame.getContentPane().add(panel,"Center"); 
    frame.setSize(panel.getPreferredSize()); 
    frame.setVisible(true); 
    } 
} 
+0

Cảm ơn rất nhiều Guys ... Có chính xác những gì tôi cần .. Muốn làm điều gì đó với "hữu ích của câu trả lời này" điểm cho u .. Nhưng dường như tôi cần 15 điểm danh tiếng: ( – Sam

+0

@ Sam: Thông thường đánh dấu màu xanh lá cây 'rất tốt' đánh dấu dưới điểm số câu trả lời hiện các trick – npinti

+0

'int result' được sử dụng cho là gì? – user2084795

9

thử một cái gì đó như thế này

JFileChooser chooser = new JFileChooser(); 
chooser.setCurrentDirectory(new java.io.File(".")); 
chooser.setDialogTitle("select folder"); 
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
chooser.setAcceptAllFileFilterUsed(false); 
+0

Cảm ơn rất nhiều .. Hãy để tôi bắt đầu thử nghiệm theo hướng này – Sam

+0

Điểm của "chooser.setCurrentDirectory (new java.io.File (". "));" hàng. tôi thực sự không nhận được nó – cssGEEK

+2

@cssGEEK có thể là quá muộn để trả lời, nhưng nó làm cho nó để hộp thoại bắt đầu tại thư mục hiện hành. Trong Unix (ít nhất), mỗi thư mục có một thư mục có tên '.' và một thư mục có tên' ..'. Đầu tiên là tham chiếu đến cùng một thư mục và thư mục thứ hai là thư mục cha. Trong Java, String bạn cung cấp cho hàm tạo của 'File' là một đường dẫn tương đối nếu nó không bắt đầu bằng một'/'(Unix) hoặc' X: \ '(Windows), vì vậy nếu bạn cho nó". ", nó là một thư mục liên quan đến thư mục hiện tại của chương trình. Điều đó sẽ làm cho người chọn trỏ đến thư mục hiện tại nơi chương trình đang chạy. –

20

Oracles Java Tutorial for File chọn canh: http://docs.oracle.com/javase/tutorial/uiswing/components/filechooser.html

Note getSelectedFile() trả về thư mục đã chọn, mặc dù tên. getCurrentDirectory() trả về thư mục của thư mục đã chọn.

import javax.swing.*; 

public class Example 
{ 
    public static void main(String[] args) 
    { 
     JFileChooser f = new JFileChooser(); 
     f.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
     f.showSaveDialog(null); 

     System.out.println(f.getCurrentDirectory()); 
     System.out.println(f.getSelectedFile()); 
    }  
} 
0

Tôi tìm thấy một ví dụ tốt về những gì bạn cần trong this link.

import javax.swing.JFileChooser; 

public class Main { 
    public static void main(String s[]) { 
    JFileChooser chooser = new JFileChooser(); 
    chooser.setCurrentDirectory(new java.io.File(".")); 
    chooser.setDialogTitle("choosertitle"); 
    chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); 
    chooser.setAcceptAllFileFilterUsed(false); 

    if (chooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) { 
     System.out.println("getCurrentDirectory(): " + chooser.getCurrentDirectory()); 
     System.out.println("getSelectedFile() : " + chooser.getSelectedFile()); 
    } else { 
     System.out.println("No Selection "); 
    } 
    } 
} 
Các vấn đề liên quan