Java - 拒绝访问java.io.FileNotFoundException

时间:2013-10-24 08:58:42

标签: java filenotfoundexception

我有以下代码:

List<FileItem> items = uploadHandler.parseRequest(request);
for (FileItem item : items) {
    if (!item.isFormField()) {
        File file = new File("D:/Data");
    }
}

当我尝试保存文件时,我收到以下错误

java.io.FileNotFoundException: D:\Data (Access is denied.)

可能是什么原因,我该如何解决这个问题?我对此文件夹有读写权限。

5 个答案:

答案 0 :(得分:61)

当您创建新的File时,您应该提供文件名,而不仅仅是您要将文件放入的目录。

尝试使用类似

的内容
File file = new File("D:/Data/" + item.getFileName());

答案 1 :(得分:19)

不完全是这个问题的情况,但可能会有所帮助。 当我在新文件而不是父文件上调用mkdirs()时,我遇到了这个异常

File file = new java.io.File(path);
//file.mkdirs(); // wrong! 
file.getParentFile().mkdirs(); // correct!
if (!file.exists()) {
    file.createNewFile();
} 

答案 2 :(得分:6)

我已经搜索了这个问题,我得到了以下答案:

  1. "C:\Program Files\Apache-tomcat-7.0.69\" 删除额外的反斜杠(\
  2. 右键单击tomcat文件夹中的日志文件夹,然后在安全性选项卡中将此文件夹作为写入权限,然后以管理员身份重新启动net-beans。
  3. 您的问题将得到解决

答案 3 :(得分:4)

您需要为用户控件设置权限。

  1. 转到C:\ Program Files \
  2. 右键单击java文件夹,单击属性。选择安全选项卡。
  3. 在那里,点击&#34;编辑&#34;按钮,弹出PAVISSIONS FOR JAVA窗口。
  4. 点击“添加”,弹出一个新窗口。在那里,在&#34;输入对象名称&#34;框,输入您的用户帐户名,然后单击     好的(如果已经存在,请跳过此步骤。)
  5. 现在进入JAVA&#34; PAVISSIONS OF JAVA&#34;窗口,你会看到几个可点击的 像CREATOR OWNER,SYSTEM这样的选项就是你的选择         用户名。单击它,然后选中标记FULL CONTROL选项         子窗口的权限。
  6. 最后,点击申请,好吧。

答案 4 :(得分:4)

确保该目录存在,您有权访问它并将该文件添加到写入日志的路径中:

File file = new File("D:/Data/" + item.getFileName());