首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法将文件写入文档文件夹

无法将文件写入文档文件夹
EN

Stack Overflow用户
提问于 2020-08-26 20:59:20
回答 3查看 437关注 0票数 0

我正在尝试用Java编写一个文件,或者在文件不存在的情况下创建一个新文件。(使用JDK 14)。但是,当我运行以下代码时,在if语句条件下得到一个IOException,如果该文件不存在,它读取The system could not find the file specified,如果该文件存在,则读取Access is denied

代码语言:javascript
运行
复制
File file = new File(filePath);
System.out.println(filePath); // C:\Users\username\Documents\test.txt
if (file.createNewFile()) {
    System.out.println("File successfully created");
} else {
    System.out.println("File already exists");
}

当我试图将其保存到桌面文件夹并成功地保存该文件时,代码可以工作,但无论出于何种原因,都不允许触摸文档。

我运行IntelliJ的用户可以完全访问计算机上的所有文件,并且以管理员身份运行IDE没有解决问题。但是,我可以保存到用户文件夹和桌面。只有它的文档或子目录,我不能保存到。

站点上有一些类似的问题,比如this one,但是原因与我的情况不一样--这是权限问题,而不是缺少目录的问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-10-31 15:16:59

我刚刚也遇到了同样的问题。在某些Windows 10安装上,JFileChooser()似乎没有告诉操作系统用户已经选择了一个文件夹,因此,即使用户拥有完全访问权限,但沙箱、恶意软件控制、访问控制阻止创建文件的访问权限(权限检查是确定的,但IOException 13或访问被拒绝时文件写入失败)。但是,如果FileDialog()在JFileChooser失败时工作.

票数 1
EN

Stack Overflow用户

发布于 2020-08-26 22:10:43

下面是我要尝试调试的内容:

您应该尝试将文件保存到“My Documents”,而不是'Documents'?

  • Try,以便将文件保存到C:\Users\username\test.txt (我怀疑会工作)

  • 尝试将该文件保存到C:\Users\username\My Documents\test.txt

  • If您确实希望将其保存到“Documents”中,确保“Documents”主管存在。如果是这样,请打开安全选项卡下的文档上的属性,选择“Group用户名”下的每个人,并在权限下选择“完全控制”。这将打开它的宽度,应该允许文件创建。您可能需要注意哪些设置是“有问题的”,因此您可以将其设置为将目录设置为大范围打开的权限。再次尝试运行该程序.
票数 -2
EN

Stack Overflow用户

发布于 2020-08-26 22:53:49

  • 1

如果您想要将数据写入文件,只需使用任何Writer,例如:

代码语言:javascript
运行
复制
FileWriter writer = new FileWriter(yourFile);

您可以使用流筛选来加快操作。更多地显示你的代码。您刚刚显示了现有文件的条件。

  • 2

如果要在“文档”文件夹中创建文件,请获取路径,然后创建一个:

File file = new File(documentPath);

代码语言:javascript
运行
复制
while(!file.exists())
    file.createNewFile();
//condition for file existing...`

如果我不帮忙,请在下面评论,只是我无法理解你的问题:)。祝好运

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63605662

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档