eaww
Messages postés2Date d'inscriptionmardi 19 juillet 2005StatutMembreDernière intervention19 juillet 2005
-
19 juil. 2005 à 11:25
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 2006
-
19 juil. 2005 à 14:17
Salut, j'ai un soucis avec la fonction copyfile je l'utilise pour effectuer une sauvegarde et il ne se passe rien du tout : ni message d'erreur ni fichier copié...
si quelqu'un pouvait jeter un coup d'oeil à mon code ce serait sympa...
// Lecture de TGV.ini pour récupérer le chemin de sauvegarde
fichier := TiniFile.Create(ExtractFilePath(Application.ExeName)+'TGV.ini');
chemin_save := Ed_Rep_Sauvegarde.Text;
fichier.WriteString('CHEMIN','ch_donnees_save',chemin_save);
chemin_use := fichier.ReadString('CHEMIN','ch_bdd_use','')+'BDD_TGV\Projet_TGV.mdb';
// Création des répertoires Images et BDD_TGV s'ils n'existent pas
if (DirectoryExists (chemin_save+'images') = False) then
CreateDir (chemin_save+'images');
if (DirectoryExists (chemin_save+'BDD_TGV') = False) then
CreateDir (chemin_save+'BDD_TGV');
//jusqu'ici tout est correct les fichiers sont créés et les valeurs pour chemin_save et chemin_use sont bon aussi...
// Sauvegarde de la BDD
CopyFile(PChar(chemin_use),PChar (chemin_save+'BDD_TGV\Projet_TGV.mdb'),True);
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 200622 19 juil. 2005 à 13:27
fmxutils.pas du répertoire Delphi\Demos\
Y'a une fonction pour copier "proprement" un fichier. C'est du Delphi, pas un API Windows. Par l'Api, c'est la même fonction que supprimier un fichier, mais avec un paramètre qui diffère.
mkdir pour créer un dossier
rmdir pour effacer un dossier vide
Essaye :chemin_save :IncludeTrailingDelimiter(...); Validez les réponses si ok...
eaww
Messages postés2Date d'inscriptionmardi 19 juillet 2005StatutMembreDernière intervention19 juillet 2005 19 juil. 2005 à 13:53
merci pour l'info seulement je n'ai pas trouvé de doc sur cette fonction donc je ne sais pas trop comment l'utiliser et quand je tente quelque chose delphi me renvoi un message d'erreur m'indiquant ke c un identificateur non déclaré...
il y a peut être quelque chose à ajouter au uses??
si c possible de m'aider encore un peu ou de me montrer de la doc dessus ce serai sympa,
merci encore
cs_grandvizir
Messages postés1106Date d'inscriptionsamedi 8 novembre 2003StatutMembreDernière intervention 3 septembre 200622 19 juil. 2005 à 14:17
procedure CopierFichier(const FileName, DestName: string);
var CopyBuffer: Pointer;
BytesCopied: Longint;
Source, Dest: Integer;
const ChunkSize: Longint = 8192;
begin
GetMem(CopyBuffer, ChunkSize);
try
Source:=FileOpen(FileName, fmShareDenyWrite);
if Source < 0 then
raise EFOpenError.CreateFmt(SFOpenError, [FileName]);
try
Dest:=FileCreate(DestName);
if Dest < 0 then raise EFCreateError.CreateFmt(SFCreateError, [DestName]);
try
repeat
BytesCopied:=FileRead(Source, CopyBuffer^, ChunkSize);
if BytesCopied > 0 then
FileWrite(Dest, CopyBuffer^, BytesCopied);
until BytesCopied < ChunkSize;
finally
FileClose(Dest);
end;
finally
FileClose(Source);
end;
finally
FreeMem(CopyBuffer, ChunkSize);
end;
end;
CopierFichier se paramètre avec des chemins absolus.
IncludeTrailingDelimiter permet d'avoir des chemins avec un "" final, ce qui évite que c:\dossier\fichier.txt ne soit c:\dossierfichier.txt si ta variable contenant le nom du dossier vaut 'c:\dossier'.