IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Déplacer un répertoire en java


Sujet :

Entrée/Sortie Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 64
    Points : 40
    Points
    40
    Par défaut Déplacer un répertoire en java
    Bonjour
    j'aimerai savoir comment on fait pour déplacer un dossier (qui contient déja des sous dossiers) vers un autre endroit en java

    merci de votre aide

  2. #2
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut Malheureusement je crains qu'il n'y ait pas de réponse.
    Bonjour,

    En effet, je ne crois pas qu'il existe de méthode magique du genre copy(source, destination) dans l'ensemble des classes java standard qui permettent d'accéder au système de fichier. Que ce soit par l'objet File, ou par JFileChooser, le déplacement n'existe pas. Il faut copier la source vers sa nouvelle destination, puis supprimer la source après évidement s'être assuré d'avoir tout copié. De plus, il sera de la charge de votre code d'introspecter le contenu du dossier à déplacer pour réaliser la construction identique de l'arborescence qu'il pourrait contenir avant de copier aux bons endroits fichiers par fichiers...
    Dans ce cas, je penses que si vous prenez soin d'examiner le type de platteforme système hôte, rien ne vous empêche par le biais de Runtime.getRuntime().exec("ligne de commande") de réaliser ce genre d'opération. Sous windows, il vous suffira de faire un move cheminsource chemindestination. Sinon, il faut coder...
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  3. #3
    vic
    vic est déconnecté
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2002
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 431
    Points : 498
    Points
    498
    Par défaut
    Si, il existe bien une méthode pour déplacer un répertoire, c'est renameTo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    File origine = new File( "C:\\repertoire_depart" );
    File destination = new File("C:\\repertoire_arrivee");
     
    if(origine.renameTo( destination ))
        System.out.println("OK");
    else
        System.out.println("Erreur");
    Attention cependant cette méthode ne marche que si on reste sur la même partition. Pour déplacer d'une partition sur l'autre, il faut faire une copie complète récursive du répertoire (comme le fait l'OS).

  4. #4
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut On en apprend tous les jours.
    Merci, je ne connaissais pas renameTo. Mais c'est éffectivement dommage de ne pas pouvoir avoir une cible et une source sur différents systèmes de fichiers. Dans ce cas, ne serait-il pas interressant d'utiliser le format jar pour créer un fichier qui contiendrait tout le dossier source, puis déployer le jar obtenu sur une autre partition et enfin, après avoir vérifié supprimé le dossier source ?
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  5. #5
    vic
    vic est déconnecté
    Membre confirmé

    Profil pro
    Inscrit en
    Août 2002
    Messages
    431
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 431
    Points : 498
    Points
    498
    Par défaut
    Je pense qu'on perdrait du temps. En effet il faudrait déployer le jar, donc créer les fichiers comme si on les avait copiés directement. De plus si le répertoire source est très volumineux la création du jar sera coûteuse. Enfin, il faudrait disposer d'un espace disponible équivalent à la taille du répertoire pour stocker le jar temporairement, ce qui n'est pas nécessaire si on copie directement.

    Le jar est intéressant pour transférer entre 2 machines par exemple, mais sur la même machine le facteur limitant est la vitesse des disques, pas le transfert.

  6. #6
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Bonjour,

    sinon il existe des bibliothèques spécifiques aux I/O comme "Commons IO" de la fondation Apache.
    Bien le bonjour chez vous
    Jowo

  7. #7
    Membre expérimenté
    Avatar de yotta
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Septembre 2006
    Messages
    1 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 088
    Points : 1 540
    Points
    1 540
    Par défaut Effectivement vic
    Je n'avais pas pensé à cela, c'est vrai que pour des gros volumes, ce n'est pas envisageable. Quoi qu'il en soit, pour ma part je vais en resté là. En effet, je crois que vous avez fort bien répondu à la question initiale Vic, et poursuivre cette discussion somme toute interessante ici serait à mon sens déplacé.
    Et je ne vais pas me priver de jeter un oeil à cette API COMMON IO de Apache...
    Bonne journée à vous tous.
    Une technologie n'est récalcitrante que par ce qu'on ne la connait et/ou comprend pas, rarement par ce qu'elle est mal faite.
    Et pour cesser de subir une technologie récalcitrante, n'hésitez surtout pas à visiter les Guides/Faq du site !

    Voici une liste non exhaustive des tutoriels qui me sont le plus familiers :
    Tout sur Java, du débutant au pro : https://java.developpez.com/cours/
    Tout sur les réseaux : https://reseau.developpez.com/cours/
    Tout sur les systèmes d'exploitation : https://systeme.developpez.com/cours/
    Tout sur le matériel : https://hardware.developpez.com/cours/

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    j'ai essayé le "renameto" pour déplacer un repertoire (qui contients déja des sous répértoires et des fichiers) vers un autre emplacement ça me léve une exception, en faite faut qu'ils aient le méme repertoire parent pour que ça marche,
    en ce qui concerne cette api que vous avez proposé je vais la voir
    ps: je dois déplacer 340mo a cause de la quantité enorme des docuement pdf que j'ai

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Je suis pas spécialement fan de ces méthodes agnostiques de la plateforme.

    Selon l'OS, le disque, la partition, la position de la lune l'opération peut réussir ou non.
    Donc ce qui fonctionne dans un test u et dans une application en local peut échouer sur la machine d'exploitation.
    Perso, je préfère utiliser un script (sh/bat) de déplacement, le valider en local puis sur la machine cible.

    Par ailleurs, si l'opération de déplacement a échoué, ca peut être pratique d'avoir un moyen simple de relancer l'opération hors applicatif.
    Ils flottent tous en bas

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 64
    Points : 40
    Points
    40
    Par défaut
    un sh?
    c'est à dire un script de commande linux?

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    exact
    Ils flottent tous en bas

Discussions similaires

  1. Outil de synchronisation de 2 répertoires en Java
    Par Dave Ridic dans le forum Général Java
    Réponses: 3
    Dernier message: 29/11/2008, 11h38
  2. [PB 9] Copier ou déplacer un répertoire
    Par stephanetk dans le forum Powerbuilder
    Réponses: 5
    Dernier message: 03/09/2008, 10h37
  3. filtrer les fichiers d'un répertoire en java
    Par leondebruxelles dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 21/03/2008, 15h19
  4. Déplacer un répertoire et son contenu
    Par choubiroute dans le forum Langage
    Réponses: 6
    Dernier message: 28/04/2006, 12h59
  5. [EasyPHP] Déplacer le répertoire WWWW
    Par Furius dans le forum Autres Logiciels
    Réponses: 3
    Dernier message: 10/10/2005, 21h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo