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

C# Discussion :

Changer une lettre de lecteur dans le chemin.


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Par défaut Changer une lettre de lecteur dans le chemin.
    Bonjour à tous,

    j'ai un petit souçi qui va certainement vous sembler bien simple je cherche depuis plusieurs heures et je ne trouve pas.

    j'ai une carte SD que je lis dans le lecteur de mon ordi(le lecteur E :\) , dans cette cartes j'ai une arborescence de dossiers et fichiers
    je recupere cette arborescence avec le code suivant(sourcePath represente le lecteur E:\)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     string[] Toutesdirectory = System.IO.Directory.GetDirectories(sourcePath, "*");
    foreach (string s in Toutesdirectory)
    {
     
    }
    Je recupere comme je le souhaite les chemins complets , dans Toutesdirectory et un par un dans s avec foreach.

    Le but c'est de faire une copie exacte de cette arborescence sur un autre lecteur (le C:\toto\baba\)par exemple.
    je ne trouve pas la solution pour "couper" le E:\ de ma premiere path et le remplacer par C:\toto\baba\
    pour combiner la fin de ma path SD avec le debut de ma path de destination
    par exemple passer de
    E:\un dossier\un autre dossier\unfichier.beubeuA
    C:\toto\baba\un dossier\un autre dossier\unfichier.beubeu
    j'ai essayé de chercher et fait des essais avec les classe Path , Directory
    je ne trouve pas

    si vous avez une piste sans me donner la solution trop facilement
    Merci

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Tu utilises la méthode Split de la classe String (String.Split)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string TheCardPath = "E:\\un dossier\\un autre dossier\\unfichier.beubeu";
    string Letter = TheCardPath.split("\\")(0);
    Puis la méthode Replace (String.Replace) de cette même classe String :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string TheLocalPath = TheCardPath.Replace(Letter, "C:\\toto\\baba");
    Il existe plein d'autres solutions bien évidement.

    ++

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Par défaut
    Merci pour cette reponse très rapide,je vais essayer demain.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Par défaut
    Bonsoir un petit retour apres les essais,
    effetivement il y a ceertainement de nombreuses solutions faire cette manip.
    J'ai choisi d'utiliser Remove et Combine .
    Je trouve cette solution logique et lisible dans le code.
    path1 c'est ma path d'origine(c:\blabla.gif)
    remove enleve les 3 premiers caractere de Path1(il reste blabla.gif)
    sourcePath ma path de destination(E:\)
    destFile la construction de sourcePath+path1(E:\blabla.gif)
    et pour finir je copie le fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    path1 = path1.Remove(0, 3);
                    string fileName = System.IO.Path.GetFileName(s);
                    string destFile = System.IO.Path.Combine(sourcePath, path1);
                    System.IO.File.Copy(s, destFile, true);

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Décembre 2016
    Messages : 5
    Par défaut
    Bonsoir un petit retour apres les essais,
    effectivement il y a certainement de nombreuses solutions pur faire cette manip.
    J'ai choisi d'utiliser Remove et Combine .
    Je trouve cette solution logique et lisible dans le code.
    path1 c'est ma path d'origine(c:\blabla.gif)
    remove enleve les 3 premiers caractere de Path1(il reste blabla.gif)
    sourcePath ma path de destination(E:\)
    destFile la construction de sourcePath+path1(E:\blabla.gif)
    et pour finir je copie le fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                    path1 = path1.Remove(0, 3);
                    string fileName = System.IO.Path.GetFileName(s);
                    string destFile = System.IO.Path.Combine(sourcePath, path1);
                    System.IO.File.Copy(s, destFile, true);
    Merci pour le coup de main.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer une procédure en Function dans Mysql, c'est un peu urgent
    Par alitazichibi dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 13/11/2012, 17h37
  2. [Débutant] changer une lettre dans une boucle
    Par moha_namb dans le forum MATLAB
    Réponses: 1
    Dernier message: 19/05/2011, 20h50
  3. [PowerShell] Modification d'une lettre de lecteur suite a un montage Snapshot
    Par Gusss dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 21/01/2010, 18h05
  4. Incrémenter une lettre pour enregistrement dans une bdd
    Par baggie dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 31/03/2008, 16h26
  5. Réponses: 11
    Dernier message: 16/12/2007, 16h33

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