Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dateien Kopieren (Ins WinDir) (https://www.delphipraxis.net/65880-dateien-kopieren-ins-windir.html)

DEADHunter 21. Mär 2006 19:19


Dateien Kopieren (Ins WinDir)
 
Hallo,

ich habe im Easy Helper folgendes gefunden:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  mem : TMemoryStream;
  FilePathA, FilePathB : String;
begin
  FilePathA := Edit1.Text; // Pfad der zu kopierenden Datei
  FilePathB := Edit2.Text; // Zielpfad
  mem := TMemoryStream.Create;
  try
    mem.LoadFromFile(filePathA);
    mem.SaveToFile(FilepathB);
  finally
    mem.Free;
  end;
end;
Das hab ich so umgeschrieben, das eine bestimmte Datei kopiert wird, ich möchte aber, das die ins Windows Verzeichniss kommt, mit %WinDir% lief es leider nicht :(

ManuMF 21. Mär 2006 19:21

Re: Dateien Kopieren (Ins WinDir)
 
Woher soll Delphi auch wissen, was %WinDir% ist? ;-)

siehe CodeLibrary.

Gruß,
ManuMF

DEADHunter 21. Mär 2006 19:27

Re: Dateien Kopieren (Ins WinDir)
 
Hi,

wusste ich nicht :P

Code:
Function WinDowsDir:String;
var
  a : Array[0..MAX_PATH] of char;
  Temp:String;
begin
  GetWindowsDirectory(a, sizeof(a));

  Temp:=(StrPas(a));
  Temp:=copy(temp,length(temp),1); /// Abschließenden Slash anfügen !

   if Temp='\' then
     WinDowsDir:=((trim(StrPas(a))))
   else
     WinDowsDir:=((trim(StrPas(a))))+'\';
end;

procedure TForm1.Button15Click(Sender: TObject);

var
  mem : TMemoryStream;
  FilePathA, FilePathB : String;
begin
  FilePathA := 'C:\test.exe'; // Pfad der zu kopierenden Datei
  FilePathB := 'C:\WinDowsDir\NEUETEST.exe'; // Zielpfad
  mem := TMemoryStream.Create;
  try
    mem.LoadFromFile(filePathA);
    mem.SaveToFile(FilepathB);
  finally
    mem.Free;
  end;
GWas ist nun wieder falsch (Hab lang nicht mehr mit Delhpi gearbeitet)

The-X 21. Mär 2006 19:36

Re: Dateien Kopieren (Ins WinDir)
 
warum nicht direkt Windows.CopyFile(lpsrc,lpdest: Pchar; bFailIfExists: Boolean): Boolean benutzen ?

ErazerZ 21. Mär 2006 19:37

Re: Dateien Kopieren (Ins WinDir)
 
Delphi-Quellcode:
function Copy2WinDir: Boolean;
var
  lpBuffer: Array[0..MAX_PATH] of Char;
  sPfad: String;
begin
  ZeroMemory(@lpBuffer, sizeof(lpBuffer));
  GetWindowsDirectory(lpBuffer, sizeof(lpBuffer));
  sPfad := String(lpBuffer) + '\' + ExtractFileName(ParamStr(0));
  Result := CopyFile(PChar(ParamStr(0)), PChar(sPfad), False);
end;
.. ich will nicht wissen was du machst, flipscreen und dann windir :O

ManuMF 22. Mär 2006 17:21

Re: Dateien Kopieren (Ins WinDir)
 
Delphi-Quellcode:
Function WinDowsDir: String;
...

procedure TForm1.Button15Click(Sender: TObject);

var
  mem : TMemoryStream;
  FilePathA, FilePathB : String;
begin
  FilePathA := 'C:\test.exe'; // Pfad der zu kopierenden Datei
  FilePathB := WindowsDir + 'NEUETEST.exe'; // Zielpfad
  mem := TMemoryStream.Create;
  try
    mem.LoadFromFile(filePathA);
    mem.SaveToFile(FilepathB);
  finally
    mem.Free;
  end;
Da WindowsDir eine Funktion ist, darfst du sie nicht als String schreiben (in den ''-Zeichen). Außerdem - WindowsDir muss ja nicht auf C: sein.

Aber wie The-X geschrieben hat, für den "Hausgebrauch" ;-) reicht auch CopyFile.

Gruß,
ManuMF


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz