使用java 语言,如何打开文件夹和浏览文件呢?
打开文件夹或打开目录
/***
*
* @param folder
* : directory
*/
public static void open_directory(String folder) {
File file = new File(folder);
if (!file.exists()) {
return;
}
Runtime runtime = null;
try {
runtime = Runtime.getRuntime();
if (!SystemUtil.isWindows) {
// System.out.println("is linux");
runtime.exec("nautilus " + folder);
} else {
runtime.exec("cmd /c start explorer " + folder);
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (null != runtime) {
runtime.runFinalization();
}
}
}
浏览文件:
/***
*
* @param filePath
* : only regular file
*/
public static void open_file(String filePath) {
File file = new File(filePath);
if (!file.exists()) {
return;
}
Runtime runtime = null;
try {
runtime = Runtime.getRuntime();
if (!SystemUtil.isWindows) {
// System.out.println("is linux");
runtime.exec("nautilus " + filePath);
} else {
runtime.exec("cmd /c start explorer /select,/e, " + filePath);
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (null != runtime) {
runtime.runFinalization();
}
}
}
应用:
openFileButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
FileUtils.open_file(sourceTF.getText());
}
});
openFolderButton = new JButton("打开文件夹");
openFolderButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//打开文件夹
FileUtils.open_directory(targetTF.getText());
}
});
请参阅附件中的类com.io.hw.file.util.FileUtils
---------------2016年9月11日 优化代码-----------------
/***
*
* @param folderObj
* : directory
*/
public static void open_directory(Object folderObj) {
if (ValueWidget.isNullOrEmpty(folderObj)) {
return;
}
File file = null;
/*if (folderObj instanceof JTextField) {
JTextField tf = (JTextField) folderObj;
file = new File(tf.getText());
} else */if (folderObj instanceof String) {
file = new File((String) folderObj);
} else {
file = (File) folderObj;
}
if (!file.exists()) {
return;
}
Runtime runtime = null;
try {
runtime = Runtime.getRuntime();
if (SystemHWUtil.isWindows) {
runtime.exec("cmd /c start explorer " + file.getAbsolutePath());
} else if (SystemHWUtil.isMacOSX) {//苹果电脑,比如MacBook
String cmdPrefix;
if (file.isDirectory()) {
cmdPrefix = "open ";
} else {
cmdPrefix = "open -R ";
}
runtime.exec(cmdPrefix + file.getAbsolutePath());
} else {
runtime.exec("nautilus " + file.getAbsolutePath());
}
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (null != runtime) {
runtime.runFinalization();
}
}
}
参考:http://blog.marchtea.com/archives/119
作者:黄威
主页: http://blog.youkuaiyun.com/hw1287789687