首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法将文件设为java.io.IOException:没有这样的文件或目录

无法将文件设为java.io.IOException:没有这样的文件或目录
EN

Stack Overflow用户
提问于 2011-09-19 17:44:39
回答 6查看 116.8K关注 0票数 29

我试图在文件系统上创建一个文件,但是我总是得到这样的异常:

代码语言:javascript
运行
复制
java.io.IOException: No such file or directory

我有一个已存在的目录,并且我正在尝试向该目录写入一个文件。

代码语言:javascript
运行
复制
// I have also tried this below, but get same error
// new File(System.getProperty("user.home") + "/.foo/bar/" + fileName);

File f = new File(System.getProperty("user.home") + "/.foo/bar/", fileName);

if (f.exists() && !f.canWrite())
        throw new IOException("Kan ikke skrive til filsystemet " + f.getAbsolutePath());

if (!f.isFile()) {
    f.createNewFile(); // Exception here
} else {
    f.setLastModified(System.currentTimeMillis());
}

获取异常:

代码语言:javascript
运行
复制
java.io.IOException: No such file or directory
  at java.io.UnixFileSystem.createFileExclusively(Native Method)
  at java.io.File.createNewFile(File.java:883)`

我有该路径的写权限,但该文件并未创建。

EN

回答 6

Stack Overflow用户

发布于 2011-09-19 17:47:25

如果目录../.foo/bar/不存在,则无法在其中创建文件,因此请确保先创建该目录。

尝试如下所示:

代码语言:javascript
运行
复制
File f = new File("somedirname1/somedirname2/somefilename");
if (!f.getParentFile().exists())
    f.getParentFile().mkdirs();
if (!f.exists())
    f.createNewFile();
票数 52
EN

Stack Overflow用户

发布于 2016-12-06 18:08:35

要注意权限,你可能没有其中的一些权限。您可以在设置->应用程序->应用程序的名称->权限->活动中看到它,如果没有。

票数 12
EN

Stack Overflow用户

发布于 2011-09-19 17:50:03

尝试使用

先使用f.mkdirs(),然后使用createNewFile()

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

https://stackoverflow.com/questions/7469018

复制
相关文章

相似问题

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