如何创建一个按钮,单击该按钮可打开%appdata%目录?

时间:2012-06-10 07:20:12

标签: java eclipse directory jframe

我已经创建了一个按钮,但是我现在不知道如何在单击按钮时打开像%appdata%这样的特定目录。

以下是代码 - >

//---- button4 ----
        button4.setText("Texture Packs");
        button4.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                JFileChooser fileChooser=new JFileChooser("%appdata%");
                int status = fileChooser.showOpenDialog(this);
                fileChooser.setMultiSelectionEnabled(false);

                if(status == JFileChooser.APPROVE_OPTION) {
                    File file = fileChooser.getSelectedFile();
                    // do something on the selected file.
                }


            }

我想做这样的事情 - >

private void button4MouseClicked(MouseEvent e) throws IOException {

           open folder %appdata% 
           // Open the folder in the file explorer not in Java.
           // When I click on the button, the folder is viewed with the file explorer on the screen
        }

3 个答案:

答案 0 :(得分:3)

import java.awt.Desktop;
import java.io.File;

public class OpenAppData {

    public static void main(String[] args) throws Exception {
        // Horribly platform specific.
        String appData = System.getenv("APPDATA");
        File appDataDir = new File(appData);
        // Get a sub-directory named 'texture'
        File textureDir = new File(appDataDir, "texture");
        Desktop.getDesktop().open(textureDir);
    }
}

答案 1 :(得分:1)

使用Runtime.exec(..)执行命令。但是,并非每个操作系统都具有相同的文件浏览器,因此您需要处理操作系统。

Windows:Explorer /select, file

Mac:open -R file

Linux:xdg-open file

我编写了一个FileExplorer类,目的是在本机文件资源管理器中显示文件,但是您需要对其进行编辑以检测操作系统。 http://textu.be/6

注意:如果您希望显示单个文件,则为此。要透露目录,Desktop#open(File)要简单得多,正如Andrew Thompson所发布的那样。

答案 2 :(得分:0)

如果您使用的是Windows Vista及更高版本,System.getenv("APPDATA");会返回C:\Users\(username}\AppData\Roaming,因此您应该再次使用filechooser, 只是一个简单的修改安德鲁的例子,

    String appData = System.getenv("APPDATA");
    File appDataDir = new File(appData); // TODO: this path should be changed! 
    JFileChooser fileChooser = new JFileChooser(appData);
    fileChooser.showOpenDialog(new JFrame());

有关windows xpwindows vista/7/8

的详情