gpt4 book ai didi

java - JFileChooser/FileWriter 不允许我保存在 C : disk 的根目录中

转载 作者:太空宇宙 更新时间:2023-11-04 07:17:12 25 4
gpt4 key购买 nike

我正在玩,我使用 swing 制作了一个类似记事本的应用程序。到目前为止,一切工作正常,除了它不允许我将文本文件直接保存在 C:/上。在任何其他磁盘上,包括 D: 驱动器的根目录,或在 C:/磁盘的文件夹中,它都可以像魅力一样工作。为什么会发生这种情况?

这是我的代码:

   file_save.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {

JFileChooser Chooser = new JFileChooser();
File DefaultDirectory = new File("C:/");
File Path;
int Checker;
FileFilter text_filter = new FileNameExtensionFilter(
"Text File (*txt)", "txt");
FileFilter another_filter = new FileNameExtensionFilter(
"Debug Filter (*boyan)", "boyan");
//
Chooser.setCurrentDirectory(DefaultDirectory);
Chooser.setDialogTitle("Save a file");
Chooser.addChoosableFileFilter(text_filter);
Chooser.addChoosableFileFilter(another_filter);
Chooser.setFileFilter(text_filter);
Checker = Chooser.showSaveDialog(null);
//
if (Checker == JFileChooser.APPROVE_OPTION) {
Path = Chooser.getSelectedFile();
System.out.println(Path.getAbsolutePath());
;// Just for
// debugging.

BufferedWriter writer = null;
try {
writer = new BufferedWriter(new FileWriter(Path
.getAbsolutePath()));
String[] myString = textArea.getText().split("\\n");
for (int i = 0; i < textArea.getLineCount(); i++) {
writer.append(myString[i]);
writer.newLine(); // SO IT CAN PRESERVE NEW LINES
// (APPEND AND SPLIT ARE ALSO
// THERE
// BECAUSE OF THAT)
writer.flush();
}

JOptionPane.showMessageDialog(null, "File saved.", "",
JOptionPane.WARNING_MESSAGE);

} catch (IOException e) {
JOptionPane.showMessageDialog(null,
"File did not save successfuly.", "",
JOptionPane.WARNING_MESSAGE);
} finally {
try {
if (writer != null)
writer.close();
} catch (IOException e) {
JOptionPane.showMessageDialog(null,
"File did not save successfuly.", "",
JOptionPane.WARNING_MESSAGE);
}
}

}

}
});

提前非常感谢!

最佳答案

通常,在 C:\ 中没有写入权限。

  • 以特权用户身份启动应用程序

    人们不应该这样做,因为这不是操作系统设计的初衷。禁止更改 C:\ 或系统驱动器上的权限。

  • 保存到 System.getProperty("user.home"); 的子目录中(方法)

    例如,用户主目录也可以是域网络中每晚备份的网络文件夹。特别是对于远程 session (RDP、Citrix),这种情况经常发生。

如果您确实需要在用户文件夹之外安装静态文件,请使用配置为提升权限 (UAC) 的安装程序执行一次。

关于java - JFileChooser/FileWriter 不允许我保存在 C : disk 的根目录中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19795605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com