我需要打开一个包含指定文件的文件夹,然后突出显示该文件。我一直在寻找这个,但我一直不走运。有人可以解释如何使用java来完成这项工作吗?
非常感谢。我可以打开文件,文件夹,但不能打开包含文件夹并突出显示文件。跨平台代码将是一个加号,或者只是指向我的方向!谢谢!
@UPDATE:
基本上我正在做一个图像分类器。我有ArrayList
个包含文件名,例如myarraylist.get(0)将返回funny_cat.jpg
这可以是在与文件/文件夹一起使用的程序中具有的便利功能。使用以下方法实际打开包含文件夹很简单:
我希望用户能够打开JList
中当前选定的项目并打开包含所选目标文件的文件夹。
我会发布代码,但是这个问题太长而且最不必要,我将在下面发布如何打开资源管理器窗口,为程序的设置部分,以便选择要使用的新目录: / p>
public void browseFolder(){
System.out.println("browsing!");
final JFileChooser fc = new JFileChooser();
File dir = new File(core.Loader.path);
fc.setCurrentDirectory(dir);
// Windows and Mac OSX compatibility code
if (System.getProperty("os.name").startsWith("Mac OS X")) {
fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
} else {
fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
}
fc.setApproveButtonText("Choose directory");
int returnVal = fc.showOpenDialog(fc);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File f = fc.getSelectedFile();
// if the user accidently click a file, then select the parent directory.
if (!f.isDirectory()) {
f = f.getParentFile();
}
// debug
System.out.println("Selected directory for import " + f);
}
}
@UPDATE
我找到了解决方案,将在下面发布答案。
答案 0 :(得分:1)
所以,我只是从执行的动作中调用了这个方法,并且它可以解决问题。
基本上,解决方案是制作这个终端命令:
open -R absolute/path/to/file.jpg
这仅适用于Mac OS X,以下是我使用的方法:
public void openFileInFolder(String filename){
try {
Process ls_proc;
String mvnClean = "open -R " + core.Loader.path + "/" + file_chosen;
String OS = System.getProperty("os.name");
System.out.println("OS is: " + OS);
if (OS.contains("Windows")) {
//code ...
} else {
ls_proc = Runtime.getRuntime().exec(mvnClean);
}
} catch (Exception e){
System.err.println("exception");
}
}