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.
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.