- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Apache 库来编辑 DOCX 文件,我希望用户选择保存文件的目录。无论选择哪个文件夹,它总是会出现异常并显示“路径(访问被拒绝)”,但是,如果我在代码中选择目录,它就会完美运行。这是我的一些代码:
XWPFDocument doc = null;
try {
doc = new XWPFDocument(new ByteArrayInputStream(byteData));
} catch (IOException e) {
e.printStackTrace();
}
/* editing docx file somehow (a lot of useless code) */
Alert alert = new Alert(Alert.AlertType.INFORMATION);
DirectoryChooser dirChooser = new DirectoryChooser();
dirChooser.setTitle("Choose folder");
Stage stage = (Stage) (((Node) event.getSource()).getScene().getWindow());
File file = dirChooser.showDialog(stage);
if (file != null) {
try {
doc.write(new FileOutputStream(file.getAbsoluteFile()));
alert.setContentText("Saved to folder " + file.getAbsolutePath());
} catch (IOException e) {
alert.setContentText(e.getLocalizedMessage());
}
} else {
try {
doc.write(new FileOutputStream("C://output.docx"));
alert.setContentText("Saved to folder C:\\");
} catch (IOException e) {
alert.setContentText(e.getLocalizedMessage());
}
}
alert.showAndWait();
请帮我找出我做错了什么:(
最佳答案
DirectoryChooser 返回一个 File
对象,该对象可以是目录,也可以是空对象(如果您没有通过按“取消”或退出对话框来选择一个对象)。因此,为了保存文件,您还需要将文件名附加到您选择的目录的绝对路径中。您可以通过以下方式做到这一点:
doc.write(new FileOutputStream(file.getAbsoluteFile()+"\\doc.docx"));
但这与平台相关,因为对于 Windows 来说它是“\”,而对于 unix 来说它是“/”,所以最好使用 File.separator
,例如:
doc.write(new FileOutputStream(file.getAbsoluteFile()+File.separator+"doc.docx"));
您可以阅读有关上述内容的更多信息 here
编辑: 正如 Fabian 在下面的评论中提到的,您可以使用 File
构造函数,传递文件夹(您从 DirectoryChooser 获得的文件)和新文件名作为参数,使代码更具可读性:
new FileOutputStream(new File(file, "doc.docx"))
关于java - 使用 DirectoryChooser 保存文件时访问被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50865333/
JavaFX - 是否可以使用 DirectoryChooser 一次选择多个目录? 或者有什么方法可以在没有 DirectoryChooser 的情况下做到这一点? 最佳答案 JavaFX 2.2
我想用我输入的名称创建一个文本文件并将其保存到一个位置。我可以使用 DirectoryChooser 选择位置,但如何输入文件名。 DirectoryChooser 中是否有为此的选项。 这是我的代码
有没有办法让外部设备出现在 JavaFx DirectoryChooser 的对话框上?如果没有,有其他选择吗? 我需要做的是通过java应用程序将文件从PC复制/粘贴到Android手机SD卡中的目
我正在使用 Apache 库来编辑 DOCX 文件,我希望用户选择保存文件的目录。无论选择哪个文件夹,它总是会出现异常并显示“路径(访问被拒绝)”,但是,如果我在代码中选择目录,它就会完美运行。这是我
我使用openjfx模块开发一个java应用程序。我现在想使用 DirectoryChooser 让用户选择多个文件作为输入(代码如下)。每次我从 IDE 启动应用程序时,它都会崩溃,但出现以下异常。
我正尝试在我的 Android 应用程序中包含一个目录选择器功能,但显然我无法导入我找到的库。这是我要使用的库:https://github.com/passy/Android-DirectoryCh
我是一名优秀的程序员,十分优秀!