2016-03-31 9 views
2

Ich versuche, Datei in den Projektordner mit diesem folgenden Code zu verschieben. Der Code erhält die Datei vom Benutzer, wird jedoch nicht an den neuen Speicherort verschoben. Kann mir bitte jemand helfen? Vielen Dank im Vorausversuchen, Datei an anderen Speicherort (im Projektordner) zu verschieben

@FXML private void setNewPhotoButton(ActionEvent event){ 
     Stage currentStage = (Stage) newPhotoButton.getScene().getWindow(); 

     FileChooser fileChooser = new FileChooser(); 
     fileChooser.setTitle("Choose an image"); 
     fileChooser.getExtensionFilters().addAll(
       new FileChooser.ExtensionFilter("Image Files", "*.png", "*.jpg", "*.gif")); 

     File f = new File("photos/"); 
     fileChooser.setInitialDirectory(f); 
     File selectedFile = fileChooser.showOpenDialog(currentStage); 

     if(selectedFile != null){ 
      //System.out.println("C:/" + selectedFile.getPath()); 
      //System.out.println("userfiles/"+UNAME+"/"+ANAME+"/"); 
      File src = new File(selectedFile.getPath()); 
      File dest = new File("userfiles/"+UNAME+"/"+ANAME+"/"); 
      Path sr = src.toPath(); 
      Path ds = new File(dest,src.getName()).toPath(); 
     } 

    } 
+0

Versuchen Sie, in einen beliebigen Ressourcenordner Ihres Projekts zu verschieben? –

+0

ja ich bin @ViswanathLekshmanan – AP6

+0

Ich fand es heraus danke Ihnen allen für die Hilfe – AP6

Antwort

1

Ich fand es heraus, ich danke Ihnen allen für Ihre Hilfe. Hier ist, was ich getan habe

Path movefrom = FileSystems.getDefault().getPath(selectedFile.getPath()); 
      Path target = FileSystems.getDefault().getPath("userfiles/"+UNAME+"/"+ANAME+"/"+selectedFile.getName()); 
      Path targetDir = FileSystems.getDefault().getPath("userfiles/"+UNAME+"/"+ANAME); 
      try{ 
       Files.move(movefrom,target,StandardCopyOption.ATOMIC_MOVE); 
      }catch (IOException e){} 
1

Für mich sieht es aus wie Sie die neue Datei Objekte erstellt werden, aber machen nicht die notwendigen Änderungen auf der Festplatte. Wenn Sie selectedFile vom Benutzer ausgewählt haben, können Sie die Files class' move() method verwenden.

+0

Ich probierte Files move Klasse, aber ich bekomme eine Art von Fehler @entpnerd – AP6

+0

versuchen { Files.move (sr, ds, ATOMIC_MOVE); } catch (IOException e) { e.printStackTrace(); } @entpnerd – AP6

0

Wenn Sie

File src = new File(""); 

Ohne Wert zwischen Anführungszeichen Datei in Ihrem Projektarbeitsbereich erstellen können verwendet werden.

Verwandte Themen