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++Builder Discussion :

Copie du contenu d'un dossier


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut Copie du contenu d'un dossier
    Bonjour à tous

    Je cherche à copier le contenu d'un dossier (présent sur un APN) dans un dossier local.

    Voulant éviter les problèmes avec les APN qui possèdent une gestion parfois un peu particulière des fichiers, j'ai donc décidé de mettre en place une méthode me permettant de copier fichiers et dossiers et de reconstruire l'arborescence à l'identique dans le dossier local.

    Au début, j'ai cherché à faire ça par moi-même (à l'aide des fonctions FindFirst, FindNext et le reste de la famille ) mais ce ne fut pas une grande réussite

    J'ai donc fait un petit tour sur le forum et je suis tombé sur ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SHFILEOPSTRUCT FileOpStr;
    ZeroMemory(&FileOpStr, sizeof(FileOpStr));
    FileOpStr.hwnd = Application->Handle;
    FileOpStr.wFunc = FO_COPY;
    FileOpStr.pFrom = "C:\\Source\0";
    FileOpStr.pTo = "C:\\Destination\\*.*\0";
    SHFileOperation(&FileOpStr);
    Hélas, impossible de le faire fonctionner
    A chaque exécution, j'ai droit à une erreur Impossible de lire à partir du fichier source ou de la disquette...

    Si quelqu'un a une solution, je suis preneur

    Nb : je tourne sous Windows 2000 avec les droits administrateurs sur mon compte. Je ne pense donc pas que le problème vienne des droits sur les dossiers.

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut bakaneko
    Super cette fonction elle marche tres bien apres juste une petite modification
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    SHFILEOPSTRUCT FileOpStr;
    ZeroMemory(&FileOpStr, sizeof(FileOpStr));
    FileOpStr.hwnd = NULL;
    FileOpStr.wFunc = FO_COPY;
    FileOpStr.pFrom = "C:\\Documents and Settings\\blondelle\\Mes documents\\ADO_DOC\0"; // C:\Documents and Settings\blondelle\Mes documents\ADO_DOC
    FileOpStr.pTo = "C:\\Documents and Settings\\blondelle\\Mes documents\\Nouveau dossier (4)copie\0";
    SHFileOperation(&FileOpStr);
    }
    Dans ton code
    FileOpStr.pTo = "C:\\Destination\\*.*\0";
    remplacer par
    FileOpStr.pTo = "C:\\Destination\0";
    j'ai vu un autre code et j'ai remarque que " *.extension " etait utilise pour copier les fichiers avec une extension donnee, pour la copie complete on ne met rien.

  3. #3
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    C'est vrai que ça marche mieux ainsi

    Merci pour le coup de main

    Nb : Il faudra corriger l'exemple ou ajouter une précision pour que ce genre d'erreurs ne se reproduisent pas

  4. #4
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Je pense que c'est surtout l'explication qui doit etre corrigee, la fonction a ete mise complete, si on fait une copie complete on ne met rien sinon on met une extension *.txt, *.exe .... pour le type de fichier que l'on veut copier

  5. #5
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Le seul soucis que je rencontre maintenant, c'est que je voulais copier le contenu du dossier source et non pas le dossier source (je me retrouve donc avec un niveau de plus dans mon arborescence ).
    Ce n'est pas critique mais si quelqu'un possède une solution

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Si ton dossier est compose de plusieurs sous dossiers, par exemple pour copier deux sous dossiers ( la seule partie qui change )
    FileOpStr.pFrom = "C:\\Documents and Settings\\blondelle\\Mes documents\\ADO_DOC\\ADODelphi\0C:\\Documents and Settings\\blondelle\\Mes documents\\ADO_DOC\\ADODelphi1\0\0";
    Il faut ecrire deux fois la chaine, la separation entre les chaines est " \0 ", et la terminaison est " \0\0 "
    en esperant etre clair

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

Discussions similaires

  1. Copie du contenu d' un dossier
    Par a7aa7a dans le forum Langage
    Réponses: 8
    Dernier message: 08/05/2007, 17h15
  2. [OmniMark 5] Copier contenu d'un dossier dans autre dossier
    Par Hoegaarden dans le forum Autres langages
    Réponses: 3
    Dernier message: 24/08/2005, 16h59
  3. afficher le contenu d'un dossier distant
    Par roots_man dans le forum ASP
    Réponses: 3
    Dernier message: 04/02/2005, 17h23
  4. Copie du contenu d'un répertoire vers un autre
    Par IG88 dans le forum Windows
    Réponses: 4
    Dernier message: 30/07/2004, 14h33
  5. [XSL]Copie du contenu d'un fichier en XSL
    Par fidififouille dans le forum XSL/XSLT/XPATH
    Réponses: 17
    Dernier message: 16/06/2004, 12h35

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