Java:点击按钮打开文件夹

6
在Java中,当用户点击按钮时,我们如何打开一个单独的文件夹(例如c:)?类似于“在磁盘上定位此文件”或“打开包含文件夹”下载文件并想知道它保存在哪里时所做的方式。目标是为了节省用户打开浏览器并在磁盘上查找文件的时间。 感谢(下面的图像是火狐浏览器的示例) enter image description here 我得到了答案: 这是在Windows 7中适用的方法:
        File foler = new File("C:\\"); // path to the directory to be opened
        Desktop desktop = null;
        if (Desktop.isDesktopSupported()) {
        desktop = Desktop.getDesktop();
        }

        try {
        desktop.open(foler);
        } catch (IOException e) {
        }

感谢 @AlexS

除非你将编辑后的代码放在由“if”语句保护的块中,否则它可能会引发NullPointerException异常。 - Klitos Kyriacou
1个回答

10

我假设你有一个文件。使用java.awt.Desktop,你可以像这样使用:

public static void openContaiingFolder(File file) {
    String absoluteFilePath = file.getAbsolutePath();
    File folder = new File(absoluteFilePath.substring(0, absoluteFilePath.lastIndexOf(File.separator)));
    openFolder(folder);
}

public static void openFolder(File folder) {
    if (Desktop.isDesktopSupported()) {
        Desktop.getDesktop().open(folder);
    }
}

请注意,如果您使用的参数是一个不是目录的文件,至少在Windows操作系统中,系统将尝试使用默认程序打开该文件。

但我不知道这在哪些平台上受支持。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接