我已经创建了一个按钮,但是我现在不知道如何在单击按钮时打开像%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
}
答案 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());
的详情