【FAQ問題記錄】建立資料夾時報錯java.io.FileNotFoundException:(系統找不到指定的路徑。)
阿新 • • 發佈:2018-12-21
在上傳檔案時,要儲存到指定目錄下,需要建立資料夾,系統報錯如下:
嚴重: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception java.io.FileNotFoundException: G:\imooc-video-dev\181130B8D8W2RZTC\face\wx4bbcf43ad291af30.o6zAJs-zKILn2bkbA5rB9Tt0zios.H8pujQaHIdPv187fb9b352dece94f6d9218fc3ecca42.png (系統找不到指定的路徑。) at java.io.FileOutputStream.open(Native Method) at java.io.FileOutputStream.<init>(FileOutputStream.java:206) at java.io.FileOutputStream.<init>(FileOutputStream.java:156) at com.imooc.controller.UserController.uploadFace(UserController.java:60) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
看到報錯就知道是我在建立資料夾時,報錯了。程式碼如下:
File outFile = new File(finalFacePath); //判斷outFile檔案的父類檔案不為null ,並且不是資料夾 if (outFile.getParentFile() !=null || !outFile.getParentFile().isDirectory()) { //建立父資料夾 outFile.getParentFile().mkdir(); }
原因是因為mkdir()方法,只有在父類資料夾存在的情況下,才會建立資料夾。
這裡改為mkdirs() 方法,如果父類資料夾不存在,就會自動建立,如果存在,就會建立子資料夾。並建立路徑上的資料夾。