Avatar billede Slettet bruger
18. august 2007 - 15:12 Der er 15 kommentarer og
1 løsning

kopiere mappe til variabel placering

Jeg fandt et eksempel på http://www.swissdelphicenter.ch/en/showcode.php?id=152

Hvordan man kopiere en mappe, men det er som en konstant placering

Hvis nu brugeren har et datadrev eller usb, hvordan kopiere jeg mappen til den lokalitet da den er en variabel. Skal jeg bruge en savedialog ?
Avatar billede gider_ikke_mere Nybegynder
18. august 2007 - 15:23 #1
Intels processorer er i øjeblikket de stærkeste, men AMD kommer snart med et nyt udspil. Hvis du kunne vente... vidst ca. 1 måned.
Avatar billede Slettet bruger
18. august 2007 - 16:44 #2
?? du er i delphi kategori
Avatar billede gider_ikke_mere Nybegynder
18. august 2007 - 17:08 #3
Ved ikke hvad der gik galt. Den skulle være havnet her: http://www.eksperten.dk/spm/792296

Det må du undskylde.
Avatar billede kroning Nybegynder
18. august 2007 - 20:01 #4
Du kan bruge TShellTreeView eller TShellListView, i min D7 findes de under samples fanen.
Avatar billede hrc Mester
18. august 2007 - 23:00 #5
Du kan bruge SelectDirectory fra FileCtrl-unitten.

I øvrigt må du godt prøve at læse spørgsmålet igennem inden du sender. Det er ikke let at forstå. Desuden "kopierer" man, ikke "kopiere".
Avatar billede Slettet bruger
19. august 2007 - 10:49 #6
Nu forstår jeg ikke du går lidt i sort pga.af en stavefejl, det er ikke som kritik men har bemærket det flere gange. Håber ikke du tager det ilde op, men er det ikke lige at køre det på en spids?

nå tilbage til spørgsmålet...

Har du et eksempel på at bruge SelectDirectory ?
Avatar billede hrc Mester
19. august 2007 - 23:25 #7
Jeg synes ikke det er at køre det op i en spids, men du har netop ramt et ømt punkt.

Jeg sætter pris på, at når jeg bruger min tid på at hjælpe dig og andre, ikke skal spilde 5 minutter, spekulerende over hvad du mener. Så medmindre du går i 3'die klasse, er ordblind eller på anden måde lovligt undskyldt, har du ingen undskyldning for ikke at formulere dig bedre end du gør.

Når jeg ser manglende endelser, forkert/manglende brug af komma, kludder med de sammensatte ord eller genbrug af ord i samme sætning, er det en negl ned over en tydeligvis ubrugt skoletavle. Signalet er uprofessionelt - og hvor er det blevet hyppigt, især på internettet.

Nok ord fra krakileren (er vist ellers flink nok), over til eksemplet:

uses
  FileCtrl;

procedure TfrmMain.btnLookupClick(Sender: TObject);
var
  st : string;
begin
  st := trim(eDirectory.Text);
  if SelectDirectory('Vælg katalog','\',st,[]) then
    eDirectory.Text := trim(st);
end;
Avatar billede Slettet bruger
18. december 2007 - 18:48 #8
Jeg vil gå en anden vej med det her spørgsmål og vende tilbage til det med en variabel placering....

Hvordan kopierer man en helt mappe fra et sted til en anden ved at brugeren bare trykker på en button.

F.eks.

En mappe på placeringen c:\programmer\test\images

skal kopieres til placeringen c:\programmer\test\backup
Avatar billede kroning Nybegynder
18. december 2007 - 19:04 #9
Virker det eks. du selv linker til ikke?

function CopyDir(const fromDir, toDir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc  := FO_COPY;
    fFlags := FOF_FILESONLY;
    pFrom  := PChar(fromDir + #0);
    pTo    := PChar(toDir)
  end;
  Result := (0 = ShFileOperation(fos));
end;

--------
CopyDir('c:\programmer\test\images','c:\programmer\test\backup');
Avatar billede Slettet bruger
18. december 2007 - 20:31 #10
næ...Samme problem med copydir

Jeg har en anden bacup på samme button

procedure TBackup.dxButton1Click(Sender: TObject);
var
FOS :TSHFileOpStruct;
begin
with FOS do                //kopier databasen til biblioteket backup
begin
Wnd  := 0;
wFunc := FO_COPY;
pFrom := pchar(ExtractFilePath(Application.ExeName) + '\vilist*'#0);
pTo  := pchar(ExtractFilePath(Application.ExeName) + '\backup');
fFlags:= FOF_NOCONFIRMATION;
end;

Sætter jeg nedenstående linie ind

CopyDir('c:\programmer\test\images','c:\programmer\test\backup');

Får jeg fejlen [Error] Unit4.pas(164): Undeclared identifier: 'CopyDir'

Hvis jeg kun køre det eksempel du viser på den button så køre det.
Avatar billede kroning Nybegynder
18. december 2007 - 20:47 #11
Jeg har lige prøvet funktionen CopyDir fra dit link og det virker ganske fint her på Delphi 7 og Windows XP

Du får lige hele koden:
-----------------

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ShellApi;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function CopyDir(const fromDir, toDir: string): Boolean;
var
  fos: TSHFileOpStruct;
begin
  ZeroMemory(@fos, SizeOf(fos));
  with fos do
  begin
    wFunc  := FO_COPY;
    fFlags := FOF_FILESONLY;
    pFrom  := PChar(fromDir + #0);
    pTo    := PChar(toDir)
  end;
  Result := (0 = ShFileOperation(fos));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  CopyDir('c:\hk\test','c:\hk\test2');
end;

end.
Avatar billede Slettet bruger
18. december 2007 - 21:15 #12
Min dxbutton1

Skal ikke kun køre denne kode: CopyDir('c:\programmer\test\images','c:\programmer\test\backup');

Men putter jeg linien


CopyDir('c:\programmer\test\images','c:\programmer\test\backup');

ind i nedenstående

procedure TBackup.dxButton1Click(Sender: TObject);
var
FOS :TSHFileOpStruct;
begin
with FOS do                //kopier databasen til biblioteket backup
begin
Wnd  := 0;
wFunc := FO_COPY;
pFrom := pchar(ExtractFilePath(Application.ExeName) + '\vilist*'#0);
pTo  := pchar(ExtractFilePath(Application.ExeName) + '\backup');
fFlags:= FOF_NOCONFIRMATION;
end;

Får jeg fejlen

[Error] Unit4.pas(164): Undeclared identifier: 'CopyDir'


Min procedure kopierer alle filer med navnet vilist til backup
Avatar billede kroning Nybegynder
18. december 2007 - 21:28 #13
Jeg kan ikke sige hvad der er galt uden at se hele koden.

Men hvis du smider funktionen CopyDir ind lige før din dxButton1Click så kan du også kalde den inde fra din TBackup.dxButton1Click procedure uden problemer.
Avatar billede Slettet bruger
18. december 2007 - 21:31 #14
hov hvis jeg flyttede funktionen op og indsatte som på nedenstående så virker det.

procedure TBackup.dxButton1Click(Sender: TObject);
var
FOS :TSHFileOpStruct;
begin
CopyDir('c:\programmer\test\images','c:\programmer\test\backup');
begin
with FOS do                //kopier databasen til biblioteket backup
begin
Wnd  := 0;
wFunc := FO_COPY;
pFrom := pchar(ExtractFilePath(Application.ExeName) + '\vilist*'#0);
pTo  := pchar(ExtractFilePath(Application.ExeName) + '\backup');
fFlags:= FOF_NOCONFIRMATION;
end;
end;
Avatar billede Slettet bruger
18. december 2007 - 21:32 #15
tak for hjælpen kroning

smid et svar.....
Avatar billede kroning Nybegynder
18. december 2007 - 21:57 #16
k
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester