Discussione chiusa
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Funzione Copia Files

  1. #1
    motoboy non è in linea Scribacchino
    ciao a tutti, in Delphi per copiare dei files, navigando ho trovato questa funzione.. ma non funge

    function CopiaFile( vVanFile, vNaarFile : string ; vOverschrijven : boolean ) : boolean;
    
    var sr: TSearchRec;
        FileAttrs: Integer;
        NaarDir, VanDir : string;
    
    begin
      FileAttrs := FileAttrs + faAnyFile;
      NaarDir   := ExtractFilePath(vNaarFile);
      VanDir    := ExtractFilePath(vVanFile);
    
      if FindFirst( vVanfile, FileAttrs, sr) = 0 then
        begin
          repeat
             CopiaFile(Vandir+sr.Name , NaarDir+sr.Name, vOverschrijven);
          until FindNext(sr) <> 0;
          SysUtils.FindClose(sr);
        end;
    end;
    
    qualcuno ne conosce una migliore???

    grazieeee
    ℹ️ Leggi di più su motoboy ...

  2. Avevo trovato un bellissimo esempio che usava tre funzioni diverse di Windows. Devo cercarlo, dammi il tempo.

  3. #3
    motoboy non è in linea Scribacchino
    ok....

    grazie per la tua disponibilitààà come sempre

    davvero GENTILE
    ℹ️ Leggi di più su motoboy ...

  4. Quello che hai riportato sembra un esempio che arriva dall'olanda, ma non fa alcuna copia di file, semplicemente cicla richiamando se stessa. D'altronde FindFirst di certo non copia nulla... A che serve?
    Penso che comunque ti possa bastare la funzione CopyFile della libreria Windows:

    Windows.CopyFile(pChar(InFileName),
                              pChar(OutFileName),
                              FALSE //Continue if Exists
                              );
    
    Abbinata a FindFirst e FindNext puoi usarla per copiare files in directory e sottodirectory.

    Altrimenti puoi usare TFileStream:

    Procedure CopyFileStream( Const InFileName, OutFileName: String );
    Var
      S,T: TFileStream;
    Begin
      S := TFileStream.Create(InFileName, fmOpenRead);
      try
        T := TFileStream.Create(OutFileName, fmOpenWrite or fmCreate);
        try
          T.CopyFrom(S, S.Size);
          FileSetDate(T.Handle, FileGetDate(S.Handle));
        finally
          T.Free;
        end;
      finally
        S.Free;
      end;
    End;
    
    Altrimenti ancora usi BlockRead e BlockWrite, ma è un po' più complesso.
    Ultima modifica di M.A.W. 1968; 29-05-2009 00:09 
    ℹ️ Leggi di più su cyberlaundry ...

  5. #5
    motoboy non è in linea Scribacchino
    Ma con questa funzione... mi copia tutti i file e le sottodirectory contenute nella directory che desidero copiare????

    GRAZIE
    ℹ️ Leggi di più su motoboy ...

  6. No, ti copia un file.
    Usa FindFirst e FindNext per navigare nelle directory e leggerne il contenuto.
    Il tuo esempio olandese è un buon inizio.

  7. #7
    motoboy non è in linea Scribacchino
    ho trovato questa funzione... ma che devo ancora testare....
    Chissà se mi farà la copia della cartella con le sottocartelle...

    procedure princi(dirda, dira : string);
    var
      FOS :TSHFileOpStruct;
    begin
      with FOS do begin
        //Wnd := Self.Handle;
        wFunc := FO_COPY;
        pFrom := pchar(dirda + '\' + '*.*');
        pTo := pchar(dira);
        fFlags := FOF_NoConfirmMkDir;
      end;
      SHFileOperation(FOS);
    end;
    
    che ne pensi?
    ℹ️ Leggi di più su motoboy ...

  8. Interessante. Mai usata per copiare cartelle.
    Uso SHFileOperation solo per mandare i files nel cestino.
    Fammi sapere se copia anche le sottodirectory.
    E cosa accade se esistono già files e directory?

  9. #9
    motoboy non è in linea Scribacchino
    La funzione, FUNGE alla grande

    copia tutto, cartelle vuote e piene, naturalmente... con sottocartelle!!!

    L'avevo trovata in un sito circa 3 anni fa, l'avevo nelle mie librerie, ma non sapevo che fungesse così alla grande, con qualche ricerchetta l'ho trovata


    TI salutooooo
    ℹ️ Leggi di più su motoboy ...

  10. #10
    motoboy non è in linea Scribacchino
    ciao, stavo sperimentando la copia della procedura che mi hai inserito

    Procedure CopyFileStream( Const InFileName, OutFileName: String );
    Var
      S,T: TFileStream;
    Begin
      S := TFileStream.Create(InFileName, fmOpenRead);
      try
        T := TFileStream.Create(OutFileName, fmOpenWrite or fmCreate);
        try
          T.CopyFrom(S, S.Size);
          FileSetDate(T.Handle, FileGetDate(S.Handle));
        finally
          T.Free;
        end;
      finally
        S.Free;
      end;
    End;
    
    dove ho messo...

    CopyFileStream('c:\software\*.*', 'e:\');
    
    ma non mi funge ;-)

    del resto ho provato anche così

    CopyFileStream('c:\software\', 'e:\')
    
    ma niente...

    il mio intento era quello di copiare unicamente i files dalla cartella software, escludendo le sottodirectory
    ℹ️ Leggi di più su motoboy ...

Discussione chiusa
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Copia e rinomina sequenziale di files
    Da Jocman nel forum Microsoft Access
    Risposte: 8
    Ultimo Post: 28-04-2016, 16:41
  2. Risposte: 14
    Ultimo Post: 06-06-2014, 18:00
  3. ricerca files, copia, incolla, ecc...
    Da Headphone nel forum Visual Basic .Net
    Risposte: 1
    Ultimo Post: 23-04-2009, 20:17
  4. copia files
    Da nunzio nel forum Visual Basic 6
    Risposte: 2
    Ultimo Post: 19-04-2007, 23:52
  5. Copia e trasferimento files
    Da puòdarsi nel forum Microsoft Word
    Risposte: 1
    Ultimo Post: 26-07-2005, 09:59