AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Dateien aus Listbox nach beliebiges Verzeichnis kopieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien aus Listbox nach beliebiges Verzeichnis kopieren?

Ein Thema von mlspider · begonnen am 30. Dez 2005 · letzter Beitrag vom 30. Dez 2005
Antwort Antwort
Seite 1 von 2  1 2      
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#1

Dateien aus Listbox nach beliebiges Verzeichnis kopieren?

  Alt 30. Dez 2005, 15:04
Ich möchte alle in einer Listbox vorhandenen Dateien in ein beliebiges Verzeichnis kopieren. Ich nutzte den Code von sakura:

Delphi-Quellcode:
function DoFileWork(
  aWnd: HWND; aOperation: UINT; aFrom, aTo: TStrings; aFlags: FILEOP_FLAGS
  ): Integer;
var
  I: Integer;
  FromPath, ToPath: string;
  SHFileOpStruct: TSHFileOpStruct;
begin
  FromPath := '';
  for I := 0 to aFrom.Count - 1 do
    FromPath := FromPath + aFrom.Strings[I] + #0;
  FromPath := FromPath + #0;

  if Assigned(aTo) then
  begin
    ToPath := '';
    for I := 0 to aTo.Count - 1 do
      ToPath := ToPath + aTo.Strings[I] + #0;
    ToPath := ToPath + #0;
    if aTo.Count > 0 then
      aFlags := aFlags or FOF_MULTIDESTFILES;
  end;

  with SHFileOpStruct do
  begin
    Wnd := aWnd;
    wFunc := aOperation;
    pFrom := PChar(FromPath);
    if Assigned(aTo) then
    begin
      pTo := PChar(ToPath)
    end else begin // target available
      pTo := nil;
    end; // target not available
    fFlags := aFlags;
  end; // structure
  Result := SHFileOperation(SHFileOpStruct);
end;
Der Aufruf:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var sl: TStringList;
begin
 sl := TStringList.Create;
 sl.AddStrings(ListBox2.Items);
 DoFileWork(Self.Handle, FO_COPY, sl);
end;
möchte einfach nicht funktionieren. Wo muß die genaue Pfadangabe vorgenommen werden?
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#2

Re: Dateien aus Listbox nach beliebiges Verzeichnis kopieren

  Alt 30. Dez 2005, 15:23
DoFileWork kopiert halt nicht Dateien aus einer Liste in ein Verzeichnis, sondern wiederum in eine Liste von Verzeichnissen. Du brauchst also ein zweites tStrings-Objekt, welches mindestens dein Zielverzeichnis als einzigen Eintrag enthält. Außerdem gibst du keinen Parameter für aFlags an, darauf müsste dein Compiler dich schon hingewiesen haben.
Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat. (Winston Churchill)
  Mit Zitat antworten Zitat
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Dateien aus Listbox nach beliebiges Verzeichnis kopieren

  Alt 30. Dez 2005, 15:26
Das ist wahr. Der Compiler ist sehr unzufrieden. Also wenn ich es recht verstehe, müsste ich eine 2. Stringliste erzeugen, die wiederum den Pfad enthält. Und wie würde der Aufruf dann aussehen?
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#4

Re: Dateien aus Listbox nach beliebiges Verzeichnis kopieren

  Alt 30. Dez 2005, 15:32
  DoFileWork(Self.Handle, FO_COPY, slQelldateien, slZielpfad, IrgendWelcheFlags) Welche Werte FILEOP_FLAGS beinhaltet, weis ich nicht.
Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat. (Winston Churchill)
  Mit Zitat antworten Zitat
Benutzerbild von JWeis
JWeis

Registriert seit: 23. Aug 2005
Ort: Homburg
274 Beiträge
 
Delphi 7 Professional
 
#5

Re: Dateien aus Listbox nach beliebiges Verzeichnis kopieren

  Alt 30. Dez 2005, 15:33
stehen in der listbox die aktuellen pfade der dteien drin oder versteh ich dich falsch
Johannes
Der Pfad der Gerechten ist zu beiden Seiten gesäumt mit Freveleien der Selbstsüchtigen und der Tyrannei böser Männer. Gesegnet sei der, der im Namen der Barmherzigkeit und des guten Willens die Schwachen durch das Tal der Dunkelheit geleitet.
  Mit Zitat antworten Zitat
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Dateien aus Listbox nach beliebiges Verzeichnis kopieren

  Alt 30. Dez 2005, 15:35
In deer ListBox1 stehen die zu kopierenden Dateien samt Pfad drin. In ListBox2 lediglich der Zielpfad (C:\Blablabla\).

Ich habe den Aufruf insoweit abgeändert:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var sl, dl: TStringList;
begin
 sl := TStringList.Create;
 dl := TStringList.Create;
 sl.AddStrings(ListBox2.Items);
 dl.AddStrings(ListBox3.Items);
 DoFileWork(Self.Handle, FO_COPY, sl, dl, FOF_ALLOWUNDO);
 sl.Free;
 dl.Free;
end;
Leider bisher ohne Erfolg.
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#7

Re: Dateien aus Listbox nach beliebiges Verzeichnis kopieren

  Alt 30. Dez 2005, 15:39
Dann müsste dies doch klappen:

Zitat:
DoFileWork(Self.Handle, FO_COPY, Listbox1.Items, Listbox2.Items, [])
Nur zu diesen Flags kann ich eben leider nix sagen.
Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat. (Winston Churchill)
  Mit Zitat antworten Zitat
Benutzerbild von JWeis
JWeis

Registriert seit: 23. Aug 2005
Ort: Homburg
274 Beiträge
 
Delphi 7 Professional
 
#8

Re: Dateien aus Listbox nach beliebiges Verzeichnis kopieren

  Alt 30. Dez 2005, 15:39
ich hab da mal geschrieben aber mit nem memo anstatt ne listbox ich suchs und stell es online

so das ist alles
Delphi-Quellcode:
uses StrUtils
//_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_Kopieren:-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-

//Edit1 = der von pfad
//Edit2 = der nach pfad
//label2 = wieviele dateien copiert sind
//in memo setehen die dateien halt drin



//---Button-4----------------------------------------------------------------------------------
procedure TForm1.Button4Click ( Sender: TObject ) ;
var
  Datei: Integer;
begin
  if Edit2.Text <> 'then
  begin
    Progressbar1.Max:= Memo1.Lines.Count;
    for Datei:= 0 to Memo1.Lines.Count -1 do
    begin
      ForceDirectories ( Edit2.Text + '\' + AnsiReplaceStr ( ExtractFileDir ( Memo1.Lines
        [ Datei ] ) , Edit1.Text , '' ) ) ;
      CopyFile ( pchar ( Memo1.Lines [ Datei ] ) , pchar ( Edit2.Text + '\' +
        AnsiReplaceStr ( Memo1.Lines [ Datei ] , Edit1.Text,'' ) ) , true );
      Label2.Caption:= InttoStr ( Datei + 1 );
      Progressbar1.Position:= Datei + 1;
      Application.ProcessMessages;
      if Progressbar1.position = Progressbar1.max then
      begin
        ShowMessage('Alles wurde Kopiert!');
      end;
    end;
  end
  else
  begin
    Exit;
  end;
end;
Johannes
Der Pfad der Gerechten ist zu beiden Seiten gesäumt mit Freveleien der Selbstsüchtigen und der Tyrannei böser Männer. Gesegnet sei der, der im Namen der Barmherzigkeit und des guten Willens die Schwachen durch das Tal der Dunkelheit geleitet.
  Mit Zitat antworten Zitat
mlspider

Registriert seit: 22. Okt 2003
Ort: Berlin
661 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Dateien aus Listbox nach beliebiges Verzeichnis kopieren

  Alt 30. Dez 2005, 15:41
Das wäre Super. Danke.
Mario
Handbücher haben einen hohen Heizwert!!!

http://geprellte-ebay-kaeufer.de
  Mit Zitat antworten Zitat
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#10

Re: Dateien aus Listbox nach beliebiges Verzeichnis kopieren

  Alt 30. Dez 2005, 15:41
Wie äußert sich denn dieser Misserfolg?

Compilerfehler? AV? Was passiert denn genau?
Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat. (Winston Churchill)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 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