Copier un fichier d'une manière trés simple

Description

Permet la copie simplissime d'un fichier, avec la possibilité de copier d'un disque dur à un autre. Ceci est un exemple pour copier un fichier il est possible de l'inclure dans une boucle si vous voulez copier plusieurs fichiers.

Source / Exemple :


unit Unit1;

// Copie simple de fichier
// par scorpiofh
// avantages :
// copie simplement un fichier ainsi que ses attributs
// permet de copier un fichier d'un disque/unité logique
// vers un autre disque/unité logique (ce que move et rename ne savent pas faire)
// inconvénient :
// necessite la connaissance du nom du fichier
// ne copie pas les attributs de sécuritée.

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, filectrl;
  // filectrl est indispensable pour la sélection de repertoire de destination

type
  TForm1 = class(TForm)
    SourceName: TEdit;
    Label1: TLabel;
    DestinationName: TEdit;
    Label2: TLabel;
    SourceSelect: TButton;
    DestinationSelect: TButton;
    Copying: TButton;
    OpenDialog1: TOpenDialog;
    procedure SourceSelectClick(Sender: TObject);
    procedure DestinationSelectClick(Sender: TObject);
    procedure CopyingClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.SourceSelectClick(Sender: TObject);
begin
  // la c'est pas dur on sélectionne le fichier source
   if OpenDialog1.Execute then begin
    source := OpenDialog1.FileName;
    SourceName.Text := source;
   end;
end;

procedure TForm1.DestinationSelectClick(Sender: TObject);
var
  Dir: string;
begin
  // sélection du répertoire de destination
  // au départ c'est le répertoire de l'application
  Dir := ExtractFilePath(Application.ExeName);
  if SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],1000) then begin
    DestinationName.Text := Dir;
    // ajout du \ de fin de répertoire et ajout du nom du fichier
    DestinationName.Text := DestinationName.Text + '\' + ExtractFileName(SourceName.Text);
  end;
end;

procedure TForm1.CopyingClick(Sender: TObject);
Begin
 // et enfin on copie avec l'api windows
 // CopyFile(source, destination, annulerSiDestinationExiste)
 CopyFile(pchar(SourceName.Text),pchar(DestinationName.Text),False);
end;

end.

Conclusion :


Ne copie pas les attributs de sécurité.
Necessite la connaissance du nom du fichier.

Voila j'attends vos commentaires.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.