1. 程式人生 > >【FAQ問題記錄】建立資料夾時報錯java.io.FileNotFoundException:(系統找不到指定的路徑。)

【FAQ問題記錄】建立資料夾時報錯java.io.FileNotFoundException:(系統找不到指定的路徑。)

 

在上傳檔案時,要儲存到指定目錄下,需要建立資料夾,系統報錯如下:

嚴重: 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() 方法,如果父類資料夾不存在,就會自動建立,如果存在,就會建立子資料夾。並建立路徑上的資料夾。