Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Copiare file in Java

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2016
    residenza
    Italy
    Messaggi
    126

    Copiare file in Java

    Ciao a tutti,

    Come da titolo, per la mia azienda sto sviluppando una piccola utility in java con il compito di compiere semplici operazioni con dei file ( move, copy, etc. ).
    Per fare ciò sto utilizzando le librerie java
    codice:
    java.io.File;
    java.nio.file.*;
    etc
    Per performare le operazioni di copia e/o move ho realizzato due funzioni moveFile(sourcePath, targetPath) e copyFile(sourcePath, targetPath), il tutto seguendo la documentazione ufficiale di Java.
    Ho però il seguente problema, quando invoco per esempio copyFile ottengo un error exception :
    codice:
     java.nio.file.NoSuchFileException: /Users/mynale/Documents/deleghe/F_24CT/deleghe_archivio
    .

    Dove /Users/myname/Documents/deleghe/F_24CT/deleghe_archivio/ è il mio source path e /Users/myname/Documents/deleghe/F_24CT/OUT/ è il mio target path. ( PATH DI MAC ).

    Avete consigli o suggerimenti su come risolvere questo problema? Ho cercato anche online ma non sono riuscito a venire a capo

    il mio codice:
    codice:
    // copyFile: funzione chiamata per copiare file
        public static boolean copyFile(String sourcePath, String targetPath){
    
            boolean fileCopied = true;
            try{
                Files.copy(Paths.get(sourcePath), Paths.get(targetPath), StandardCopyOption.REPLACE_EXISTING);
            }catch(Exception e){
                fileCopied = false;
                
                System.out.println("Non posso copiare i file dalla cartella "+Paths.get(sourcePath)+" nella cartella "+Paths.get(targetPath)+" ! \n");
                e.printStackTrace();
                
            }
    
            return fileCopied;
        }
    codice:
    java.nio.file.NoSuchFileException: /Users/e.tirimacco/Documents/deleghe/F_24CT/deleghe_archivio
            at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
            at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
            at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
            at java.base/sun.nio.fs.UnixCopyFile.copy(UnixCopyFile.java:548)
            at java.base/sun.nio.fs.UnixFileSystemProvider.copy(UnixFileSystemProvider.java:258)
            at java.base/java.nio.file.Files.copy(Files.java:1305)
            at com.example.App.copyFile(App.java:216)
            at com.example.App.main(App.java:325)
    Ultima modifica di LeleFT; 03-12-2021 a 15:52

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,208
    Il metodo copy() della classe Files si aspetta come primo parametro il path ad un file e come secondo parametro il path del file di destinazione.
    Non puoi passare una directory come parametro, vuole proprio il file di origine e il file di destinazione.

    Se vuoi copiare TUTTI i file di una diretory in un altra, devi prima ottenere l'elenco dei file (Path) contenuti nella directory di origine e, per ciascuno di essi, invocare Files.copy() costruendo il percorso di destinazione (ti torna utile il metodo resolve() dell'oggetto Path che rappresenta la destinazione, come indicato nella documentazione).

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2022 vBulletin Solutions, Inc. All rights reserved.