Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [DELPHI] Copiare un file in rete locale LAN utilizzando Delphi 7

    Salve,
    ho recuperato qui questa info per copiare dei file in rete locale lan.
    Purtroppo non sempre funziona a dovere.
    In pratica spesso fallisce la copia

    Questo il messaggio che ho recuperato qui:

    >>ok risolto . Cmq a chi puo servire:
    >>
    >>Unit: IdGlobal
    >>
    >>copyfileto(pchar('c:\lxbt.log'),pchar('\\192.168 .5 0.33\c\lxbt.log'))

    Un messaggio di Dalton del 2006
    Magari esiste un comando in Delphi7, che sconosco, che potrebbe risolvere il mio problema.
    Conosco Utente e Pwd dei Pc collegati, ma non in tutti e non sempre arriva il file inviato.
    Su alcuni lo trovo oggi e non domani, e viceversa...
    Potete aiutarmi?

    Grazie ciao.

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    Quote Originariamente inviata da DominoRe Visualizza il messaggio
    Salve,
    ho recuperato qui questa info per copiare dei file in rete locale lan.
    Purtroppo non sempre funziona a dovere.
    In pratica spesso fallisce la copia

    Questo il messaggio che ho recuperato qui:

    >>ok risolto . Cmq a chi puo servire:
    >>
    >>Unit: IdGlobal
    >>
    >>copyfileto(pchar('c:\lxbt.log'),pchar('\\192.168 .5 0.33\c\lxbt.log'))

    Un messaggio di Dalton del 2006
    Magari esiste un comando in Delphi7, che sconosco, che potrebbe risolvere il mio problema.
    Conosco Utente e Pwd dei Pc collegati, ma non in tutti e non sempre arriva il file inviato.
    Su alcuni lo trovo oggi e non domani, e viceversa...
    Potete aiutarmi?

    Grazie ciao.
    cosa significa non sempre funziona?

    che errore ti da?

    la cartella di rete è condivisa in modalità lettura/scrittura?

    è più probabile sia un problema di sistema operativo

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Quote Originariamente inviata da DominoRe Visualizza il messaggio
    ho recuperato qui questa info per copiare dei file in rete locale lan.
    Purtroppo non sempre funziona a dovere.
    In pratica spesso fallisce la copia [...]
    Se non indichi l'errore che ottieni, possiamo farci poco.
    Se non sai qual è l'errore, allora devi intercettarlo e scriverlo da qualche parte, a video o in un file.

    Quote Originariamente inviata da DominoRe Visualizza il messaggio
    Questo il messaggio che ho recuperato qui:
    >>ok risolto . Cmq a chi puo servire:
    >>
    >>Unit: IdGlobal
    >>
    >>copyfileto(pchar('c:\lxbt.log'),pchar('\\192.168 .5 0.33\c\lxbt.log'))
    Un messaggio di Dalton del 2006
    Quello è il messaggio recuperato, ma qual è il codice reale che hai scritto tu?
    Fermo restando che pure il codice sopra mi pare abbia cose abbastanza "estranee" alla necessità e non sia del tutto corretto.

    Quote Originariamente inviata da DominoRe Visualizza il messaggio
    Magari esiste un comando in Delphi7, che sconosco, che potrebbe risolvere il mio problema.
    Al netto che non sappiamo qual è il problema, o meglio sappiamo solo qual è l'effetto desiderato a cui non si riesce a giungere, non ci sono "comandi magici" in Delphi e in altri linguaggi di programmazione: vi sono le funzioni dedicate che vanno chiamate con i parametri giusti e andando poi a gestire nel modo opportuno eventuali errori, supponendo che vi sia anche una base di conoscenze (va bene anche minima) del linguaggio e di cose si utilizza, altrimenti anche gli eventuali consigli non possono essere messi in pratica, a meno di non scrivere esattamente il codice che serve.

    Quote Originariamente inviata da DominoRe Visualizza il messaggio
    Conosco Utente e Pwd dei Pc collegati, ma non in tutti e non sempre arriva il file inviato.
    Su alcuni lo trovo oggi e non domani, e viceversa...
    E' necessario verificare la presenza di un errore con test dedicati e scrivere il codice per intercettarlo e recuperarlo.

    Quote Originariamente inviata da DominoRe Visualizza il messaggio
    Potete aiutarmi?
    Fornisci più dettagli sull'obiettivo e sullo scenario e rispondi alle domande sopra.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Grazie dell'interessamento 123delphi321,
    Tutti i pc nella mia rete sono regolarmente condivisi sia come HD che come Cartella.
    Non riesco ad intercettare il problema, potrebbe essere, come tu dici, un problema di SO, ma non me lo spiego quando il file arriva e funziona regolarmente.
    Sto cercando di replicare e dalle istruzioni che qui ti allego non riesco a capire il perchè.

    Ho aggiunto nelle uses come da indicazioni di Dalton "idGlobal"

    procedure TForm1.Button1Click(Sender: TObject);
    var
    NRW: TNetResource;
    begin
    with NRW do
    begin
    dwType := RESOURCETYPE_ANY;
    lpLocalName := 'G:';
    lpRemoteName := '\\192.168.1.147\c-drive\ppos\';
    lpProvider := 'Microsoft';
    copyfileto(pchar('C:\ProvaInvioFile\FiledaCopiare. txt'),pchar('\\192.168.1.147\C-DRIVE\PPOS\FiledaCopiare.txt'))
    end;
    WNetAddConnection2(NRW, 'possystem', 'possystem', CONNECT_UPDATE_PROFILE);
    end;

    Grazie ciao.

  5. #5
    Quote Originariamente inviata da alka Visualizza il messaggio
    Se non indichi l'errore che ottieni, possiamo farci poco.
    Se non sai qual è l'errore, allora devi intercettarlo e scriverlo da qualche parte, a video o in un file.


    Quello è il messaggio recuperato, ma qual è il codice reale che hai scritto tu?
    Fermo restando che pure il codice sopra mi pare abbia cose abbastanza "estranee" alla necessità e non sia del tutto corretto.


    Al netto che non sappiamo qual è il problema, o meglio sappiamo solo qual è l'effetto desiderato a cui non si riesce a giungere, non ci sono "comandi magici" in Delphi e in altri linguaggi di programmazione: vi sono le funzioni dedicate che vanno chiamate con i parametri giusti e andando poi a gestire nel modo opportuno eventuali errori, supponendo che vi sia anche una base di conoscenze (va bene anche minima) del linguaggio e di cose si utilizza, altrimenti anche gli eventuali consigli non possono essere messi in pratica, a meno di non scrivere esattamente il codice che serve.


    E' necessario verificare la presenza di un errore con test dedicati e scrivere il codice per intercettarlo e recuperarlo.


    Fornisci più dettagli sull'obiettivo e sullo scenario e rispondi alle domande sopra.

    Ciao!
    Ciao Marco,

    Questo il codice utilizzato per i test della copia di un file in rete.
    Aggiunto nelle uses "idGlobal" come indiato da Dalton.

    procedure TForm1.Button1Click(Sender: TObject);
    var
    NRW: TNetResource;
    begin
    with NRW do
    begin
    dwType := RESOURCETYPE_ANY;
    lpLocalName := 'G:';
    lpRemoteName := '\\192.168.1.147\c-drive\ppos\';
    lpProvider := 'Microsoft';
    copyfileto(pchar('C:\ProvaInvioFile\FiledaCopiare. txt'),pchar('\\192.168.1.147\C-DRIVE\PPOS\FiledaCopiare.txt'))
    end;
    WNetAddConnection2(NRW, 'MioUtente', 'MiaPwd', CONNECT_UPDATE_PROFILE);
    end;

    Dall'ambiente di sviluppo non mi da alcun errore, non so se tu riesci a provare e verificare.
    Può darsi che io sto tralasciando qualcosa di importante che non riesco a comprendere.

    Oggi prima di scriverti ho fatto nuovamente la prova, senza successo, per cui spero che in qualche modo posso avere qualche indicazione da voi.

    Grazie Sempre. Ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2002
    Messaggi
    1,326
    hai provato anche cosi?

    codice:
    CopyFile(PChar(OldFile), PChar(NewFile), true)

    https://stackoverflow.com/questions/...ile-and-rename

    attenzione è sempre bene aspettare la risposta del MAESTRO Alka! :-)
    Ultima modifica di 123delphi321; 10-02-2025 a 14:44

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Quote Originariamente inviata da 123delphi321
    attenzione è sempre bene aspettare la risposta del MAESTRO Alka! :-)
    Ma perché mai...
    Se si ha un suggerimento da dare, meglio farlo il prima possibile, visto che potrebbe essere risolutivo!

    Quote Originariamente inviata da 123delphi321
    Questo il codice utilizzato per i test della copia di un file in rete. [...]
    Ma perché complicarsi la vita con quell'implementazione?
    Hai provato a fare una banale copia di un file, come faresti sul disco locale?

    Prova il suggerimento che ti è stato dato qui sopra, ossia l'uso della funzione CopyFile().
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  8. #8
    Quote Originariamente inviata da alka Visualizza il messaggio
    Ma perché mai...
    Se si ha un suggerimento da dare, meglio farlo il prima possibile, visto che potrebbe essere risolutivo!


    Ma perché complicarsi la vita con quell'implementazione?
    Hai provato a fare una banale copia di un file, come faresti sul disco locale?

    Prova il suggerimento che ti è stato dato qui sopra, ossia l'uso della funzione CopyFile().
    Grazie ad entrambi,
    ho provato con quello che mi ha suggerito 123Delphi321, in locale da disco c: a disco c: listruzione CopyFile() funziona regolarmente....
    Il mio problema, forse, si verifica quando tento di copiare su una risorsa di rete.
    Quindi prima collego la risorsa, mi accerto se esiste il file altrimenti lo copio.

    Alka,scusami, puoi indicarmi un'altra istruzione in Delphi 7 per collegare un disco di una risorsa condivisa nella rete.
    Ripeto forse è qui che mi si verifica l'anomalia.

    Poi naturalmente l'utilizzo di CopyFile(), piuttosto che CopyFaileTo cambia poco.

    Grazie ciao.

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Quote Originariamente inviata da DominoRe Visualizza il messaggio
    ho provato con quello che mi ha suggerito 123Delphi321, in locale da disco c: a disco c: listruzione CopyFile() funziona regolarmente....
    Ok, quindi il problema è risolto.

    Quote Originariamente inviata da DominoRe Visualizza il messaggio
    Il mio problema, forse, si verifica quando tento di copiare su una risorsa di rete.
    Quindi prima collego la risorsa, mi accerto se esiste il file altrimenti lo copio.
    Ma non è obbligatorio collegare alcuna risorsa di rete. Qual è il percorso di partenza? Qual è quello di destinazione (effettivo)? Qual è il codice che hai scritto? Perché devi "collegare la risorsa"? Perché se la proposta suggerita funziona, stai cercando di usare altro? Cosa manca?

    Quote Originariamente inviata da DominoRe Visualizza il messaggio
    Alka,scusami, puoi indicarmi un'altra istruzione in Delphi 7 per collegare un disco di una risorsa condivisa nella rete.
    Ripeto forse è qui che mi si verifica l'anomalia.
    Al massimo si usa una funzione API di Windows, ma continuo a non capire l'anomalia.

    Quote Originariamente inviata da DominoRe Visualizza il messaggio
    Poi naturalmente l'utilizzo di CopyFile(), piuttosto che CopyFaileTo cambia poco.
    Ma infatti la CopyFile() assolve tutti i casi.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  10. #10
    Grazie Alka,
    scusa il ritardo ma sono stato vittima anch'io dell'influenza di quest' anno.... Brutta Bestia...

    Come sempre hai ragione tu,
    mi facevo io i problemi, da te sopra indicati, pensavo che fosse obbligatorio avere una risorsa G: collegata, come da te indicato.

    Confermo che il codice postato da Dalton funziona regolarmente.

    Ne approfitto pure per ringraziare 123Delphi321 per la disponibilità.

    Ciao a tutti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.