2017-04-07 10 views
0

人!私はuser.homeプロパティにフォルダを追加しようとしています。私はちょうど1つの追加のフォルダを使用している間、それはうまく動作します。しかし、別の2つの追加をしようとすると(user.home + folder1 + folder2 + folder3のように見えます)、--- java.lang.IllegalArgumentException:フォルダパラメータは有効なフォルダ--- でなければなりません。私にはいくつかの制限がありますが、どこを見つけることはできません。 java.lang.IllegalArgumentExceptionが:user.homeに2つ以上のフォルダを追加する方法

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

を共有してくださいフォルダのパラメータが有効なフォルダにする必要がありcom.sun.glass.ui.CommonDialogs.convertFolder(CommonDialogs.javaで \t: JavaFXのでcom.sun.javafx.tk.quantum.QuantumToolkit.showFileChooser(QuantumToolkit.java:1496) \tでcom.sun.glass.ui.CommonDialogs.showFileChooser(CommonDialogs.java:190) \tにおける238) \t .stage.FileChooser.showDialog(FileChooser.java:416) javafx.stage.FileChooser.showSaveDialogで(FileChooser.java:392)ru.mlog.xmlread.gui.MainController.SaveToButtonで \t(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")); 
関連する問題