【问题标题】:Unable to rename File using File#renameTo() method无法使用 File#renameTo() 方法重命名文件
【发布时间】:2011-12-20 15:09:48
【问题描述】:

我想将文件从一个文件夹移动到另一个文件夹。我正在使用File#renameTo() 方法,但文件未重命名。我不明白出了什么问题。

我正在使用 Netbeans 7.0.1 和 Apache Tomcat。

【问题讨论】:

  • 缺少异常的重要部分,它从中间某处开始
  • 我同意 oers,你发布的堆栈跟踪没有显示异常的原因......但我敢打赌你有权限问题......

标签: java file tomcat java-io


【解决方案1】:

我假设您正在尝试在 Web 应用程序中移动文件。

请记住:在容器中运行的 servlet 在读取/写入文件的位置方面受到限制 - 这是一种可配置的安全措施。

你有几个选择:

1) 使用更简单的 servlet 容器,例如 Jetty(Jetty 中的安全默认设置限制较少)。

2) 更新 catalina 政策文件:Setting catalina.policy to allow file access by servlets

3) 更加小心您尝试将文件移动到的位置。 servlet API 具有“getResource...”挂钩,可将您引用到 servlet“home”环境。

您也可以将此作为预防措施:我发现当我在 servlet 的文件级别移动内容时,通常是由于不需要的快捷方式(仔细查看现有的 Java EE API,您确定您从所有这些文件 I/O 中获得的功能尚未提供...?)...

【讨论】:

  • 我正在尝试使用 jsp 文件移动文件。我没有使用 servlet。我是学生先生。你能推荐一些简单的东西吗
  • 我无法加载完整的堆栈跟踪,因为我是第一次使用这个网站,当我尝试上传它时会出现一些缩进错误
  • 我能建议的最简单的事情是在 jetty 中运行您的应用程序(从您的角度来看,jetty 与 tomcat 相同:enavigo.com/2008/08/29/deploying-a-web-application-to-jetty)。这可能会解决它,因为默认权限更宽松。
【解决方案2】:

无论你想重命名什么文件,将这些文件保留在你的应用程序中,那么权限问题就不会出现。如果你保留在你的应用程序之外,就有机会获得权限问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-02
    • 2018-06-30
    • 1970-01-01
    • 2011-09-06
    • 1970-01-01
    • 2021-04-07
    • 2015-03-12
    • 2013-08-31
    相关资源
    最近更新 更多