Ho questo problemino, devo prendere dei files remoti, manipolarli in locale creando un nuovo file e poi spedire in remoto il file creato.
Ho una funzione che mi legge i file da remoto e me li salva in locale, dopodichè chiamo una execute a cui passo i files locali e il nome del file finale ancora da creare
per spiegarmi megliocodice:String destLocaleFilename = execute(sourceFiles, tempDestFileName); String destRemoteFilename = put(destLocaleFilename,destPath);
sourceFiles è un array di files -> sono i files che mi sono già salvata in locale
tempDestFileName è una stringa ed è il nome del file che deve essere creato
destLocaleFilename è il nome del file effettivamente creato, solo il nome.. se la execute va a buon fine ho sulla mia directory temp il file creato.
destRemoteFilename è il nome del file salvato in remoto, se coindice con quello aspettato vuol dire che la put è andata a buon fine cioè che ha preso il mio file finale in locale e lo ha sbattuto nella rete.
Il problema è che se va tutto a buon fine voglio cancellare i file locali. ho fatto:
questo perchè qui ho solo il nome del file e non il file vero e proprio, siccome quando lo creo se esiste già non ne crea uno nuovo ho pensato che bastasse questo per cancellarlo dal filesystem.. ma mi sbagliavo! destFile.delete() mi ritorna false.codice:for (int i = 0; i < sourceFiles.length; i++) sourceFiles[i].delete(); File destFile = new File(destLocaleFilename); System.out.println(destFile.delete());
Allora ho pensato di cancellarlo dentro la put, tanto è l'ultima volta in cui quel file serve davvero ed ho effettivamente il file lì dentro e non solo la stringa.. ma anche di lì il destFile.delete() mi ritorna false..
idee? posso capire *perchè* la delete non funziona? grassie![]()

Rispondi quotando