2017-04-07 34 views
0

guys!我試圖追加文件夾到user.home屬性。它工作很好,而我只使用一個額外的文件夾。但是,當我嘗試做另外兩個補充(因此它看起來像user.home + folder1 + folder2 + folder3)它會顯示--- java.lang.IllegalArgumentException:文件夾參數必須是一個有效的文件夾--- 。我雖然有一些限制,但無法找到在哪裏。如何將兩個以上的文件夾附加到user.home java

String fullRoute = null; 
    File homeDir = new File("MLog"); 
    if (!SiteCo.getEditor().getText().isEmpty() &&   
    !InciDate.getEditor().getText().isEmpty()) { 
      homeDir.mkdirs(); 

     fullRoute = System.getProperty("user.home") + File.separator + 
    //SaveVarTo.getLastVisitedDirectory() + 
        SaveVarTo.AddPath(SiteCo.getValue().toString()) + 
    File.separator + SaveVarTo.AddPath(InciDate.getValue().toString()); 
     } 
     else {homeDir.mkdirs(); 
    // File.separator+homeDir.toString() - without it   
    fullRoute = 
    System.getProperty("user.home")+File.separator+homeDir.toString();} 
       System.out.println(fullRoute); 

      fileChooser.setInitialDirectory(new File(fullRoute)); 
     fileChooser.getExtensionFilters().addAll(
       new FileChooser.ExtensionFilter("XML Files", "*.xml")); 


//sample of method 
public class Variables{ 
public String AddPath(String name) { 

     if (!name.isEmpty()) { 
      //File nou = new File(getLastVisitedDirectory() +"\\" + name); 

      File nou = new File(name); 
      if (!nou.exists()) { 
       nou.mkdirs(); 

      } else { 
       System.out.println("Folder already exists"); 
      } 


     } 
     else{name = null;} 
     return name; 
    }} 
+0

請分享由此造成的錯誤日誌 –

+0

:java.lang.IllegalArgumentException異常:文件夾參數必須是一個有效的文件夾 \t在com.sun.glass.ui.CommonDialogs.convertFolder(CommonDialogs.java: 238) \t在com.sun.glass.ui.CommonDialogs.showFileChooser(CommonDialogs.java:190) \t在com.sun.javafx.tk.quantum.QuantumToolkit.showFileChooser(QuantumToolkit.java:1496) \t在JavaFX的.stage.FileChooser.showDialog(FileChooser.java:416) \t在javafx.stage.FileChooser.showSaveDialog(FileChooser.java:392) \t在ru.mlog.xmlread.gui.MainController.SaveToButton(MainController.java:142) \t ... 62多個 –

+0

打印的System.out .print(fullRoute),然後檢查正確的路徑,如果路徑沒有問題,那麼路徑退出或不退出,如果沒有退出創建。那麼它會工作 –

回答

0
String fullRoute = null; 
    File homeDir = new File(System.getProperty("user.home")); 

    if (SiteCo.getValue() !=null && InciDate.getValue() !=null) { 

     System.out.println(SaveVarTo.getMainFolder()); 
     fullRoute = homeDir + File.separator + SaveVarTo.getMainFolder() + 
       File.separator + SiteCo.getValue().toString() + 
    File.separator + InciDate.getValue().toString(); 

    } else { 
     fullRoute = homeDir.toString(); 
    } 

    System.out.println(fullRoute); 
    File fhd = new File(fullRoute); 
    if (!fhd.exists()) 
     fhd.mkdirs(); 
    fileChooser.setInitialDirectory(fhd); 
    fileChooser.getExtensionFilters().addAll(
      new FileChooser.ExtensionFilter("XML Files", "*.xml"));