Erreur de suppression de fichiers en java
fichiersJava
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
Je voudrais en réalité transferrer des fichiers dans un autre repertoire en java mais je n'y arrive pas avec le code suivant pour quelques fichiers. J'ignore la raison.
public void transferrerFichier() {
try{
// Le fichier est transférré avec le nom du fichier original
File input = new File(cheminRepertoire+nomFichier);
FileInputStream fis = new FileInputStream(input);
BufferedInputStream in = new BufferedInputStream(fis);
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(cheminRepertoireDestination+nomFichier)));
int c;
while (( c = in.read ()) != - 1 )
out.write ( c ) ;
fis.close();
in.close () ;
out.close () ;
// Vérifier que les propriétés du fichiers permettent son écriture, renvoyer ses propriétés et supprimer le fichier
System.out.println("Nom du fichier à supprimé "+input.getName());
Boolean efface = input.delete();
System.out.println("Valeur de efface : "+efface);
} catch(Exception e){
System.out.println(e.toString());
}
}
La copie des fichiers dans l'autre répertoire est faite mais le input.delete() me retourne FALSE et finalement je n'arrive donc pas à supprimer les fichiers à la source.
PLEASE Help!!!! merci
Je voudrais en réalité transferrer des fichiers dans un autre repertoire en java mais je n'y arrive pas avec le code suivant pour quelques fichiers. J'ignore la raison.
public void transferrerFichier() {
try{
// Le fichier est transférré avec le nom du fichier original
File input = new File(cheminRepertoire+nomFichier);
FileInputStream fis = new FileInputStream(input);
BufferedInputStream in = new BufferedInputStream(fis);
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(new File(cheminRepertoireDestination+nomFichier)));
int c;
while (( c = in.read ()) != - 1 )
out.write ( c ) ;
fis.close();
in.close () ;
out.close () ;
// Vérifier que les propriétés du fichiers permettent son écriture, renvoyer ses propriétés et supprimer le fichier
System.out.println("Nom du fichier à supprimé "+input.getName());
Boolean efface = input.delete();
System.out.println("Valeur de efface : "+efface);
} catch(Exception e){
System.out.println(e.toString());
}
}
La copie des fichiers dans l'autre répertoire est faite mais le input.delete() me retourne FALSE et finalement je n'arrive donc pas à supprimer les fichiers à la source.
PLEASE Help!!!! merci
A voir également:
- Erreur de suppression de fichiers en java
- Jeux java itel - Télécharger - Jeux vidéo
- Waptrick java football - Télécharger - Jeux vidéo
- Forcer suppression fichier - Guide
- Renommer des fichiers en masse - Guide
- Waptrick java voiture - Télécharger - Jeux vidéo
1 réponse
Utilises la méthode File.renameTo(File) tu gagneras du temps ;-)
new File("C:\\Test.txt").renameTo(new File("D:\\Test.txt"));
Boolean transfert = new File(cheminRepertoire+nomFichier).renameTo(new File(cheminRepertoireDestination+nomFichier));
System.out.println("Valeur de transfert des fichiers : "+transfert);
Malheureusement çà ne fonctionne pas et j'ai une valeur FALSE de transfert qui est retournée pour tous les fichiers. Aucun fichier n'a été déplacé
Tu as peut-être simplement oublié le File.separator (l'antislash sous Windows).
Si ça ne marche pas, explique moi ton "but ultime", ce que tu veux faire au final, c'est le transfert d'un dossier complet ? Une des principales raisons qui peut faire que ça ne marche pas c'est qu'il existe déjà un fichier de même nom dans le répertoire de destination, tu dois explicitement l'effacer s'il existe avant de faire le déplacement.
File dest; if (dest.exists()) dest.delete();public void autoriser(File f) { if (!f.canRead() && !f.setReadable(true)) System.err.println(f.getName()+" : aucune permission de lecture"); if (!f.canWrite() && !f.setWritable(true)) System.err.println(f.getName()+" : aucune permission d'écriture"); if (!f.canExecute() && !f.setExecutable(true)) System.err.println(f.getName()+" : aucune permission d'exécution"); }if (!f.canRead() && !f.setReadable(true))
System.err.println(f.getName()+" : aucune permission de lecture");
if (!f.canWrite() && !f.setWritable(true))
System.err.println(f.getName()+" : aucune permission d'écriture");
if (!f.canExecute() && !f.setExecutable(true))
System.err.println(f.getName()+" : aucune permission d'exécution");
avant de faire la fonction "renameTo" mais çà n'a pas marché. Il ne m'a pas retourné de résultat pour les conditions if. Et finalement il ne supprime pas les fichiers.
En fait je travaille sur des fichiers sont je veux stocker le contenu dans des bases de données et chaque fichier que je lis, je le transferre dans un autre repertore. Je dois transferer ces fichiers parce que mon programme scrute en continu le repertoire de reception pour traiter les fichiers reçus et si les fichiers traités ne sont donc pas supprimés, ils seront traités plus d'une fois et même indéfiniment.
En réalité, j'ai testé des bouts de code pour le transfert des fichiers de ce repertoire et çà avait marché, mais une fois que je cpies le code dans mon application, les fichiers ne sont pas supprimés mais uniquement copiés. (je traite les fichiers avant de la transferer)
C'est donc çà la petite histoire