Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Verschieben von Ordner (https://www.delphipraxis.net/93133-verschieben-von-ordner.html)

SaFu 1. Jun 2007 08:55


Verschieben von Ordner
 
Hallo zusammen :hi:

Habe ein Problem, habe mich aber hier im Forum und in der delphi Hilfe mal nachgeschaut aber nichts Passendes dazu gefunden

Ich erstelle einen ordner und zwar so

Delphi-Quellcode:
 ForceDirectories(ExtractFilePath(ParamStr(0)) + 'Vertretungspläne\KW_'+(IntToStr(WeekOfTheYear(DateTimePicker1.DateTime)))+'_'+(IntToStr(yearof(DateTimePicker1.DateTime));
der wird mir angezeigt im ShellTreeView jetzt würde ich gerne diesen erstellten Ordner in einen anderen Ordner (Vertretungspläne Archiv) verschieben sobald die Aktuelle Kalenderwoche Größer ist als die vom erstellten ordner

Wie geht das habe da was gefunden mit MoveTo aber das geht nicht verstehe die Syntax nicht

Gruss Sascha :spin: :dance:

Matze 1. Jun 2007 09:00

Re: Verschieben von Ordner
 
Hi,

schau dir den Code aus der Code-Library an.

Edit: Oder den Code aus dem SDC.

DP-Maintenance 1. Jun 2007 09:03

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Object-Pascal / Delphi-Language" nach "Windows API / MS.NET Framework API" verschoben.

SaFu 1. Jun 2007 09:37

Re: Verschieben von Ordner
 
Habe es mal so gemacht

Delphi-Quellcode:
procedure TForm7.Button11Click(Sender: TObject);
begin
  if MoveDir((ExtractFilePath(ParamStr(0)))+'Vertretungspläne\KW_'+(IntToStr(WeekOfTheYear(Date)))+'_'+(IntToStr(yearof(Date))),(ExtractFilePath(ParamStr(0)))+'Vertretungspläne Archiv\') = True then
    ShowMessage('Directory copied.');
    showMessage(SysErrorMessage(GetLastError));
end;

function TForm7.MoveDir(const fromDir, toDir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc := FO_MOVE;
    fFlags := FOF_FILESONLY;
    pFrom := PChar(fromDir + (ExtractFilePath(ParamStr(0)))+'Vertretungspläne\KW_'+(IntToStr(WeekOfTheYear(Date)))+'_'+(IntToStr(yearof(Date))));
    pTo   := PChar(toDir+(ExtractFilePath(ParamStr(0)))+'Vertretungspläne Archiv\');
  end;
  Result := (0 = ShFileOperation(fos));
end;
Aber bekomme einen fehler (Quelldatenträger kann nicht gelesen werden)

wo liegt da der fehler

Matze 1. Jun 2007 09:41

Re: Verschieben von Ordner
 
Stimmen deine Pfade?

Klaus01 1. Jun 2007 09:44

Re: Verschieben von Ordner
 
Zitat:

Zitat von fuknersascha
Habe es mal so gemacht

Delphi-Quellcode:
procedure TForm7.Button11Click(Sender: TObject);
begin
  if MoveDir((ExtractFilePath(ParamStr(0)))+'Vertretungspläne\KW_'+(IntToStr(WeekOfTheYear(Date)))+'_'+(IntToStr(yearof(Date))),(ExtractFilePath(ParamStr(0)))+'Vertretungspläne Archiv\') = True then
    ShowMessage('Directory copied.');
    showMessage(SysErrorMessage(GetLastError));
end;

function TForm7.MoveDir(const fromDir, toDir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc := FO_MOVE;
    fFlags := FOF_FILESONLY;
    pFrom := PChar(fromDir + (ExtractFilePath(ParamStr(0)))+'Vertretungspläne\KW_'+(IntToStr(WeekOfTheYear(Date)))+'_'+(IntToStr(yearof(Date))));
    pTo   := PChar(toDir+(ExtractFilePath(ParamStr(0)))+'Vertretungspläne Archiv\');
  end;
  Result := (0 = ShFileOperation(fos));
end;
Aber bekomme einen fehler (Quelldatenträger kann nicht gelesen werden)

wo liegt da der fehler

Warum gibts Du die Pfade denn zweimal an, einmal im MoveDir und dann übergibst
Du die gleichen Pfade als Parameter und im MoveDir werden diese
beiden Pfade zusammegesetzt. Diese Pfade werden wohl nicht existieren.

Grüße
Klaus

DeddyH 1. Jun 2007 09:45

Re: Verschieben von Ordner
 
Doppelt gemoppelt ;). Ändere MoveDir mal ein wenig ab:
Delphi-Quellcode:
pFrom := PChar(fromDir);
pTo   := PChar(toDir);

SaFu 1. Jun 2007 09:50

Re: Verschieben von Ordner
 
Danke das war es. wusste das nicht


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:03 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