Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Aiuto con spostamento/rinomina di un file

    Salve a tutti sto sbattendo la testa su un problema stupidissimo che però mi sta bloccando. Vi spiego.
    In pratica tramite un JFileChooser carico un file sulla mia applicazione, dopo di che mi interesserebbe cambiare innanzitutto il nome del file appena caricato in "inputFile.txt" dopo di che vorrei spostare il file caricato e con il nome cambiato in una cartella specifica. (in pratica devo cambiare il path di questo file caricato oltre al nome).
    Per esempio carico tramite il tasto sfoglia (JFileChooser), un file che si chiama "dieta.txt" e che si trova in un punto random del computer; dopo che l'ho caricato lo stesso file lo devo cambiare il nome in "inputFile.txt" e poi lo metto in una cartella che per esempio di trova sul desktop.

    Allora dal punto di vista teorico dovrebbe essere semplice ma non ci riesco in nessun modo. Riesco a caricare il file correttamente ma non ho capito come fare a cambiargli path e quindi nome senza alterare ciò che il file contiene. Ho provato sia con toRename sia con Files.move però mi vengono fuori eccezioni o errori! qualcuno mi saprebbe dire anche solo a parole quali passi dovei seguire per fare ciò che voglio?

  2. #2
    nel mio progetto ho usato questo snippet:
    Carico il file in un oggetto File e lo passo ad una classe che si occupa della copia.

    codice:
    public void copyDB() {
        	try{
        		java.io.File file1=new java.io.File("Data/camp.dat");
        	
        		if(file1.exists())
        			new CopyFile(file1).copyDATFile();
        		else{
        			JOptionPane.showMessageDialog(this,"Warning: Impossibile creare copia di backup del file DAT",
    					"Test", JOptionPane.ERROR_MESSAGE);
        			
        		}
        	}
        	catch(java.io.IOException ioex){
        		System.err.println("Warning: Errore nella copia di backup del DBFile");
        		logger.error(ioex.getMessage());
        		ioex.printStackTrace();
        	}
        	
        }
    Classe:
    Salvo l'oggetto File facendo al copia e richiamo il metodo:
    L'oggetto FileChannel come puoi leggere dal javadoc:
    "A channel for reading, writing, mapping, and manipulating a file"
    Un oggetto per manipolare un file

    Poi da qui in poi dovresti tovare un tuo modo per trasferire.
    A me serviva solo fare una copia (nomefile-copia.dat) sulla stessa directory.
    Per questo ho preso il file senza estensione, gli ho appeso "-copia.dat" e l'ho salvato.

    Il passaggio è facile nel tuo FileChannel dest potrai scrivere
    FileChannel dest = new FileOutputStream(path+"inputFile.txt").getChannel();


    codice:
        public class CopyFile {
        
        	private File sfile;
            public CopyFile(File sfile)  {
            	this.sfile=sfile;
            }
            
           
        	
        	public void copyDATFile() throws IOException{
        		FileChannel source = new FileInputStream(sfile).getChannel();
            	String tmp=sfile.getAbsolutePath().substring(0,sfile.getAbsolutePath().length()-4);
        		FileChannel dest = new FileOutputStream(tmp+"-copia.dat").getChannel();
        		source.transferTo(0, source.size(), dest);
        		source.close();
        		dest.close();
            }
        }
    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

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 © 2024 vBulletin Solutions, Inc. All rights reserved.