Renommer fichier java renameTo

Fermé
yotheyoung - 27 juil. 2007 à 11:46
amel.ammoula Messages postés 6 Date d'inscription mercredi 10 août 2011 Statut Membre Dernière intervention 18 avril 2012 - 17 août 2011 à 14:13
j'ai un probleme avec la methode renameTo pour renommer un fichier
je suis dans un projet eclipse.

losrque j'execute :


File source=new File("src/source.txt");
source.createNewFile();
source.renameTo(new File("src/dest.txt");

la ça marche,


File source=new File("src/source.txt");
source.createNewFile();
File dest=new File("src/dest.txt");
dest.createNewFile();
source.renameTo(dest);

par contre la ca me retourne false tout le temps, je verifie bien que je n'utilise pas deja les fichiers, q'ils sont bien crées.


qui peut me répondre??
A voir également:

6 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
1 août 2007 à 12:52
Salut
Oui, c'est possible. Ou alors tu ne crées pas le fichier dest avec CreateNewFile().
L'important c'est de pas créer un fichier ou renommer un fichier avec un nom existant déjà dans le répertoire courant.

Cordialement
2
salut
je suis d'accord avec toi fiddy
fallait pas créer le fichier mais avec la methode file.delete() ça trés bien pour moi aussi

donc sa methode est acceptable

Merci
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
29 juil. 2007 à 02:30
Salut

Dans le deuxième cas, tu crées le fichier dest. Et tu renommes après le fichier source en dest. Ce qui devrait écraser un fichier existant. D'où l'impossibilité.
2
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
31 juil. 2007 à 13:38
Il est impossible d'avoir deux fichiers de même nom dans le même répertoire sur un système. Et heureusement, sinon il ne saurait pas lequel des fichiers faut lancer.

Cordialement
2
yotheyoung Messages postés 13 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 12 septembre 2007 3
31 juil. 2007 à 09:46
a bon je croyais que je devais obtenir deux fichiers du meme nom , en l'occurrence "src/dest.txt"??
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
d'accord merci.

je viens de trouver, il semblerai que ça marche maintenant.

en fait une fois que mes deux fichier sont crées, j'utile la méthode File.delete() sur le fichier dest, ce fichier est donc supprimé(mais l'objet de type File existe toujours), puis je fais source.renameTo(dest).

Je pense que ça doit etre ça, je me trompe?

merci beaucoup!
1
amel.ammoula Messages postés 6 Date d'inscription mercredi 10 août 2011 Statut Membre Dernière intervention 18 avril 2012
17 août 2011 à 14:12
moi aussi j'ai 1 problème au niveau de modification du nom du fichier voici le code


package components;

import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.filechooser.*;


public class FileChooserDemo extends JPanel implements ActionListener {

static private final String newline = "\n";
JButton openButton, saveButton;
JTextArea log;
JFileChooser fc;
InputStream in;

public FileChooserDemo() {

super(new BorderLayout());
log = new JTextArea(5,20);
log.setMargin(new Insets(5,5,5,5));
log.setEditable(false);
JScrollPane logScrollPane = new JScrollPane(log);


fc = new JFileChooser();

openButton = new JButton("Open a File...");
saveButton = new JButton("Save a File...");
saveButton.addActionListener(this);


JPanel buttonPanel = new JPanel();
buttonPanel.add(saveButton);


add(buttonPanel, BorderLayout.PAGE_START);
add(logScrollPane, BorderLayout.CENTER);
}

public void actionPerformed(ActionEvent e) {


if (e.getSource() == saveButton) {
int returnVal = fc.showSaveDialog(FileChooserDemo.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
File file = fc.getSelectedFile();

try {
in = new FileInputStream(fc.getSelectedFile());

//*** Destination***

File dst = new File("c:/"+fc.getSelectedFile().getName());

//*** Creation d'un nouveau fichier***

dst.createNewFile();

dst.renameTo(new File("lamis")); // le fichier ne change pas son nom pour quoi????

OutputStream out = new FileOutputStream(dst);



//*** Transfert***
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);

}


//*** Fermeture des flux***
in.close();
out.close();
}

catch (FileNotFoundException e2) {}
catch (IOException e3){}


log.append("Saving: " + file.getName() + "." + newline);

}
else {
log.append("Save command cancelled by user." + newline);
}
log.setCaretPosition(log.getDocument().getLength());
}
}


private static void createAndShowGUI() {

JFrame frame = new JFrame("Upload");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


frame.add(new FileChooserDemo());


frame.pack();
frame.setVisible(true);
}

public static void main(String[] args) {

SwingUtilities.invokeLater(new Runnable() {
public void run() {

UIManager.put("swing.boldMetal", Boolean.FALSE);
createAndShowGUI();
}
});
}






}
0
amel.ammoula Messages postés 6 Date d'inscription mercredi 10 août 2011 Statut Membre Dernière intervention 18 avril 2012
17 août 2011 à 14:13
c'est quoi le problème a votre avis???????
0