Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java:单击按钮打开文件夹_Java_Windows_Api_Directory - Fatal编程技术网

java:单击按钮打开文件夹

java:单击按钮打开文件夹,java,windows,api,directory,Java,Windows,Api,Directory,在java中,我们如何通过单击按钮为用户打开一个单独的文件夹(例如c:),例如,当我们下载一个文件并想知道它保存在哪里时,“在磁盘上查找此文件”或“打开包含文件夹”的方式。目标是节省用户打开浏览器并在磁盘上查找文件的时间。 谢谢(下图是firefox的一个例子) 我得到了答案: 以下是我在Windows 7中的工作原理: File foler = new File("C:\\"); // path to the directory to be opened De

在java中,我们如何通过单击按钮为用户打开一个单独的文件夹(例如c:),例如,当我们下载一个文件并想知道它保存在哪里时,“在磁盘上查找此文件”或“打开包含文件夹”的方式。目标是节省用户打开浏览器并在磁盘上查找文件的时间。 谢谢(下图是firefox的一个例子)

我得到了答案: 以下是我在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,我想你有一个文件。使用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会尝试使用该文件类型的默认程序打开该文件


但我不知道在哪些平台上支持此操作。

您编辑的代码可能会抛出NullPointerException,除非您在由
if
语句保护的块内打开它。