JAVA新建文件或目录创建返回false

标签 java file

我尝试从 java.io.File 创建一个新文件,但它的方法 createNewFile() 返回 false (以及 setWritable(true )mkdirs())。

是不是权限问题?我怎样才能改变这种行为?

额外信息:

  • File.exists() 返回 true。

  • createNewFile() 不会引发任何异常。

  • 我运行的用户有权在目录中创建文件,但 canWrite() 返回 false。

  • 另外,如果有什么改变的话,我正在使用 Eclipse。

最佳答案

Javadoc 表示,仅当文件尚不存在时才会创建新文件。 由于 File.exists() 返回 true ,这意味着文件存在,并且 createNewFile 将始终返回 false ,直到文件被删除。 java.io.File 当且仅当具有此名称的文件尚不存在时,才会自动创建一个以此抽象路径名命名的新的空文件。

一般来说,如果您在软件中遇到权限问题,建议的解决方法是:

  1. 从 shell 测试是否可以创建文件。如果没有修复权限。
  2. 检查 java 可执行文件是否以您自己的权限运行(也许它有 SUID 标志?)。
  3. 检查是否有 JAVA 安全策略拒绝您访问文件系统。

关于JAVA新建文件或目录创建返回false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40097444/

相关文章:

Java ProgressMonitor 不工作

c - 从文件 C 中的单行读取多个变量类型

java - 是否可以将单个类文件的内容加载到对象中,并将其转换为特定类型?

c - Posix 调用 'read' 不读取整个文件

c++ - 从 Stdin 读取文本文件

java - 如何向 Akka Router 中的所有 Actor 发送消息?

java - 如何正确扩展这个抽象类?

java - android java Map与自定义BiFunction合并

Java访问框架

file - hadoop 拆分文件大小相等