问题背景:
在做项目的文件上传时,报了这样的一个错误,改来改去都找不到原因
java.io.FileNotFoundException: D:\video\1\Apifox.exe (系统找不到指定的路径。)
问题分析
首先看代码的问题:这是一个io异常,查看数据库,是有数据插入的,但是找不到文件路径
查看控制台,执行了sql语句
网上一般的解决办法有这几种:
输出流里没有写文件名 OutputStream file = new FileOutputStream(new File(“D://timer.pdf”));但我的是inputstream的问题,排除
也有这种
//在填写文件路径时,一定要写上具体的文件名称(xx.txt),否则会出现拒绝访问。
File file = new File(“./mywork/work.txt”);
if(!file.exists()){
//先得到文件的上级目录,并创建上级目录,在创建文件
file.getParentFile().mkdir();
try {
//创建文件
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
具体逻辑就是没有就创建目录,但我这个已经在创建目录,就排除掉了
解决办法
第二天通过代码比对,发现是这两句的问题
File file = new File("D:/video/"+courseChapterId);
file.mkdir();
这两句使用文件类创建一个本地目录,但是问题就出在mkdir的使用上
mkdir是只能创建一层目录的,只有mkdirs函数才能建多层目录
于是在D盘下手动去建一个video目录
回去再测试一下
文件进去了,问题解决