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

Langage Delphi Discussion :

Copier vers un lecteur réseau


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Par défaut Copier vers un lecteur réseau
    Bonjour,

    Je veux copier un fichier vers un lecteur réseau. J'ai trouver cette fonction ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    Function ConnecteLecteurReseauTest(Lecteur,Chemin,MotPasse:String):Boolean;
    Var LocalNameAZT   :Array[0..79]Of Char;
        RemoteNameAZT  :Array[0..80]Of Char;
        Longueur       :Cardinal;
        Retour         :Integer;
    Begin
      // Recherche du chemin existant si existant
      Longueur:=80;
      Retour:=WNetGetConnection(StrPCopy(LocalNameAZT,Lecteur),RemoteNameAZT,Longueur);
      If Retour=NO_ERROR
      Then Begin // Lecteur déjà défini
        If UpperCase(StrPas(RemoteNameAZT))=UpperCase(Chemin)
        Then Begin  // Lecteur déjà existant
          Result:=True;
        End
        Else Begin  // Lecteur exitant mais chemin incorrect
          Retour:=WNetCancelConnection2(StrPCopy(LocalNameAZT,Lecteur),CONNECT_UPDATE_PROFILE,False);
          If Retour=NO_ERROR
          Then Begin // Deconnection du précédent lecteur OK => Connection du nouveau
            Result:=ConnecteLecteurReseau(Lecteur,Chemin,MotPasse);
          End
          Else Begin
            AffErreurLecteur(Retour);
            Result:=False;
          End;
        End;
      End
      Else Begin
        If Retour=ERROR_Not_CONNECTED
        Then Begin // Lecteur non connecté => Connection du nouveau
          Result:=ConnecteLecteurReseau(Lecteur,Chemin,MotPasse);
        End
        Else Begin
          AffErreurLecteur(Retour);
          Result:=False;
        End;
      End;
    End;
    Pour copier j'ai cette fonction dans la faq
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    function CopyFile(Source, Destination: String ) : boolean;
    var
      fos : TSHFileOpStruct;
    begin
      FillChar(fos, SizeOf(fos),0);
      with fos do
      begin
        wFunc := FO_COPY;
        pFrom := PChar(Source+#0); 
        pTo   := PChar(Destination+#0); 
        fFlags := FOF_ALLOWUNDO or FOF_NOCONFIRMATION or FOF_SILENT;
      end;
      result := (0 = ShFileOperation(fos));
    end;
    Dans un bouton j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.Button1Click(Sender: TObject);
    begin
        if CopyFile('c:\dossier1\test.exe', 'ici')then
         ShowMessage('Copie effectuée avec succès') else
         ShowMessage('Copie non effectuée');
    end;
    la fonction ConnecteLecteurReseauTest renvoie boolean. Qu'est ce que je dois mettre dans if CopyFile('c:\dossier1\test.exe', 'ici') ?.
    Merci d'vance.

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 493
    Par défaut
    salut

    tu as defini un lecteur tu met donc le nouveau lecteur

    @+ Phil

  3. #3
    Membre éclairé Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Par défaut
    Salut,

    Si je fais ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.Button1Click(Sender: TObject);
    begin
        if CopyFile('c:\dossier1\test.exe', 'ConnecteLecteurReseauTest')then
         ShowMessage('Copie effectuée avec succès') else
         ShowMessage('Copie non effectuée');
    end;
    le fichier n'est pas copié.

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 948
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 948
    Par défaut
    Gères GetLastError pour avoir plus d'info sur l'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.Button1Click(Sender: TObject);
    begin
        if CopyFile('c:\dossier1\test.exe', ConnecteLecteurReseauTest(...))then
         ShowMessage('Copie effectuée avec succès') else
         ShowMessage(SysErrorMessage(GetLastError));
    end;
    Tu défini aussi un mot de passe mais pas d'utilisateur

  5. #5
    Membre éclairé Avatar de sondo
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Août 2004
    Messages
    540
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Burkina Faso

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Service public

    Informations forums :
    Inscription : Août 2004
    Messages : 540
    Par défaut
    J'ai utiliser GetLast error. Mais il n'ya pas d'erreur. Ca renvoie toujours 'Copie effectuée avec succès', Alors que rien n'est copié.
    Je ne renseigne pas de mot de passe car je connecte à une ressource partagé sur le réseau. Je renseigne le lecteur par exemple J:, et chémin \\admin\fact.

  6. #6
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 948
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 948
    Par défaut
    Désolé, j'ai pas assez bien regardé ton code. C'est le résultat de ShFileOperation qu'il faut contrôler.

    Tu peux aussi passer plus simplement par CopyFile défini dans Windows.pas.

    Un chemin UNC doit être supporté. Inutile de passer par un mapping.
    Ensuite, le fichier de destination doit être défini. Pas uniquement le chemin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.Button1Click(Sender: TObject);
    begin
        //Windows.pas
        if CopyFile('c:\dossier1\test.exe', '\\admin\Fact\test.exe', TRUE) then
         ...
    end;

  7. #7
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 493
    Par défaut
    salut

    Citation Envoyé par Andnotor Voir le message
    Gères GetLastError pour avoir plus d'info sur l'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    procedure TForm1.Button1Click(Sender: TObject);
    begin
        if CopyFile('c:\dossier1\test.exe', ConnecteLecteurReseauTest(...))then
         ShowMessage('Copie effectuée avec succès') else
         ShowMessage(SysErrorMessage(GetLastError));
    end;
    Tu défini aussi un mot de passe mais pas d'utilisateur

    Argh il a pas tout compris effectivement

    j'aurai pluto fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if ConnecteLecteurReseauTest('Z',...) Then
     begin
         if CopyFile('c:\dossier1\test.exe','Z:\')then
         ShowMessage('Copie effectuée avec succès') else
         ShowMessage(SysErrorMessage(GetLastError));
    
      end;
    @+ Phil

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

Discussions similaires

  1. CopyFile vers un lecteur réseau
    Par zaki_1982 dans le forum ASP
    Réponses: 3
    Dernier message: 25/05/2011, 11h01
  2. Réponses: 5
    Dernier message: 17/08/2010, 12h37
  3. compilation vers un lecteur réseau
    Par bapfuror dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 02/06/2008, 11h35
  4. Redirection de Mes documents vers un lecteur Réseau
    Par moi95 dans le forum Administration système
    Réponses: 0
    Dernier message: 04/04/2008, 11h45
  5. [exporter] Exporter la base vers lecteur réseau..
    Par terziann dans le forum Administration
    Réponses: 3
    Dernier message: 15/11/2005, 11h02

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