【问题标题】:Cannot change filename using File.renameTo() on GNU/Linux无法在 GNU/Linux 上使用 File.renameTo() 更改文件名
【发布时间】:2011-12-27 09:56:41
【问题描述】:

我在编码时遇到了一个奇怪的问题。我必须将名为 börsenzeitung_komplett 的文件重命名为 processed_börsenzeitung_komplett

我正在使用来自 Java API 的currentFile.renameTo(newFile)它在 Windows 系统上运行良好,但在 GNU/Linux 系统上返回 false。

【问题讨论】:

  • 您是否检查了源文件和目标目录的读/写权限?
  • 可能运行 java 应用程序的用户无权重命名该文件。尝试:chmod 777 文件名。
  • 如果你有解决方案,请与我分享。我现在有同样的问题。你有一个 +1 :)

标签: java linux file


【解决方案1】:

您应该检查输出目录的权限(并且可以选择使用chmod 更改它)或者目标文件是否已经存在(我假设您没有使用任何SecurityManager)。

正如java.util.File Javadoc 所说:

重命名此抽象路径名表示的文件。

此方法的行为的许多方面都与生俱来 平台相关:重命名操作可能无法移动 文件从一个文件系统到另一个文件系统,它可能不是原子的,并且 它 如果具有目标抽象路径名的文件可能不会成功 已经存在。应始终检查返回值以确保 表示重命名操作成功。

请注意,Files 类定义了 move 方法来移动或重命名 以独立于平台的方式文件。

【讨论】:

  • 文件'börsenzeitung_komplett'中的特殊字符问题ö这个字符,其余所有其他文件都被重命名。我使用的是linux系统,是否需要做一些设置才能支持这些字符??
  • 你能从 GNU/Linux 终端重命名这个文件吗?
猜你喜欢
  • 2015-09-18
  • 2016-05-14
  • 2014-06-25
  • 2013-07-16
  • 2014-09-10
  • 2014-12-16
  • 2013-05-27
  • 1970-01-01
  • 2015-02-10
相关资源
最近更新 更多