Java – 拒绝访问java.io.FileNotFoundException

我有以下代码:

List 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.) 

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

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

尝试类似的东西

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

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

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

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

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

你的问题将得到解决

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

  1. 转到C:\ Program Files \
  2. 右键单击java文件夹,单击属性。 选择安全选项卡。
  3. 在那里,点击“编辑”按钮,弹出PERMISSIONS FOR JAVA窗口。
  4. 单击Add,将弹出一个新窗口。 在其中,在“输入对象名称”框中,输入您的用户帐户名,然后单击“确定”(如果已存在,请跳过此步骤)。
  5. 现在在“PAVISSIONS OF JAVA”窗口中,您将看到几个可点击的选项,如CREATOR OWNER,SYSTEM,其中包括您的用户名。 单击它,选中“子窗口权限”中的“完全控制”选项。
  6. 最后,点击适用,好吧。

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

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