无法使用File#renameTo()方法重命名File

时间:2011-12-20 15:09:48

标签: java file tomcat java-io

我想将文件从一个文件夹移动到另一个文件夹。我使用File#renameTo()方法,但文件未重命名。我没有得到出错的地方。

我正在使用Netbeans 7.0.1和Apache Tomcat。

2 个答案:

答案 0 :(得分:2)

我假设您正在尝试在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的功能......?)...

答案 1 :(得分:1)

无论您要重命名的文件是什么,请将这些文件保留在您的应用程序中,然后才会出现权限问题。如果您不在应用程序之外,则可能会出现权限问题。