我有以下代码:
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.)
可能是什么原因,我该如何解决这个问题?我对此文件夹具有读写权限。
当你创建一个新的File
时,你应该提供文件名,而不仅仅是你想把文件放进去的目录。
尝试类似的东西
File file = new File("D:/Data/" + item.getFileName());
不完全是这个问题的情况,但可能会有所帮助。当我在新文件而不是其父文件上调用 mkdirs() 时,我遇到了这个异常
File file = new java.io.File(path);
//file.mkdirs(); // wrong!
file.getParentFile().mkdirs(); // correct!
if (!file.exists()) {
file.createNewFile();
}
我搜索了这个问题,得到了以下答案:
-
"C:Program FilesApache-tomcat-7.0.69"
删除多余的反斜杠 ()
- 右键单击 tomcat 文件夹中的日志文件夹,然后在"安全"选项卡中将此文件夹作为写入权限,然后以管理员身份运行重新启动 net-beans。
您的问题将得到解决
您需要为用户控件设置权限。
- 转到 C:\程序文件\
- 右键单击 java 文件夹,单击属性。选择"安全"选项卡。
- 在那里,单击"编辑"按钮,这将弹出"JAVA权限"窗口。
- 单击添加,这将弹出一个新窗口。在其中,在"输入对象名称"框中,输入您的用户帐户名称,然后单击 好的(如果已经存在,请跳过此步骤)。
- 现在在"JAVA的权限"窗口中,您将看到几个可点击的创建者所有者,系统等选项,其中包括您的 用户名。单击它,然后选中选中 完全控制 选项 子窗口的权限。
- 最后,点击应用并确定。
确保该目录存在,您有权访问它并将文件添加到写入日志的路径:
File file = new File("D:/Data/" + item.getFileName());