在默认文件资源管理器中打开一个文件并使用 JavaFX 或普通 Java 突出显示它

GOX*_*LUS 5 java io explorer javafx

我希望按照标题所说的去做。


部分解决方案:

例如,Windows您可以使用下面的代码在默认资源管理器中打开一个文件并突出显示它。

( although it needs modification for files containing spaces):

/**
 * Opens the file with the System default file explorer.
 *
 * @param path the path
 */
public static void openFileLocation(String path) {
    if (InfoTool.osName.toLowerCase().contains("win")) {
        try {
            Runtime.getRuntime().exec("explorer.exe /select," + path);
        } catch (IOException ex) {
            Main.logger.log(Level.WARNING, ex.getMessage(), ex);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

有用的链接:

相似但未no way dublicates回答的链接:

如何使用java代码打开Windows文件资源管理器并突出显示指定文件?

使用 Java 在资源管理器中打开文件夹

如何从 java fx 应用程序打开默认系统浏览器?


更多解释:

  • 有没有办法使用 JavaFX 做到这一点?

     If not at least i need a link or some way to make the app system  
      independence.I mean i don't know the default explorer for every OS     
      that the application is going to work , i need a link or help doing that.
    
    Run Code Online (Sandbox Code Playgroud)
  • 我需要编写大量代码才能做到这一点吗?

  • 有没有图书馆可以这样做?

  • Java9 支持吗?


最后:

很奇怪,对于如此常见的事情,我找不到答案和图书馆。

非常感谢帮助:)


在 Windows 10 中突出显示或选择的示例:

在此处输入图片说明

小智 4

从 Java 9 开始,可以使用新方法 browserFileDirectory,因此您的方法将声明:

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

/**
 * Opens the file with the System default file explorer.
 *
 * @param path the path
 */
public static void openFileLocation(String path) {
    Desktop.getDesktop().browseFileDirectory(new File(path));
}
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅 javadoc: https://docs.oracle.com/javase/10/docs/api/java/awt/Desktop.html#browseFileDirectory(java.io.File)

  • 刚刚在 Windows 10 上测试...`java.lang.UnsupportedOperationException:当前平台不支持 BROWSE_FILE_DIR 操作!`我就像什么ttttt ...使用 Java 9.0.4 (3认同)
  • 请参阅 [JDK-8233994](https://bugs.openjdk.java.net/browse/JDK-8233994)。Windows 10 是故意不支持的。不知道为什么。也许它只是被遗忘了。 (2认同)