Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Kopieren klappt erst und dann wieder nicht - Fehlersuche (https://www.delphipraxis.net/119183-kopieren-klappt-erst-und-dann-wieder-nicht-fehlersuche.html)

Sam Razr 21. Aug 2008 17:19


Kopieren klappt erst und dann wieder nicht - Fehlersuche
 
Hey,

ich schreibe grade ein kleines Programm für meine Webgallerien. Zweimal klappt die Operation kopieren, beim dritten mal nicht. Aber ich finde nicht den Fehler. Vielleicht kann mir einer helfen.

Hier der entsprechende Code:

Delphi-Quellcode:
var i:integer;
var Quelldatei, Zieldatei,kind,smalldir,tndir: string;

//------------------

//Origfiles
  mkdir(Dir + '\Original Files');

  if combobox1.text='Concertphotos' then kind:='G' else kind:='D';
  if combobox1.text='Session' then kind:='S' else kind:='D';
  if combobox1.text='Other Photos' then kind:='D' else kind:='D';


  //Variablen Setzen
  smalldir:=Dir + '\' + kind + combobox4.Text + combobox3.Text + combobox2.Text + edit2.Text;
  tndir:=Dir + '\' + kind + combobox4.Text + combobox3.Text + combobox2.Text + edit2.Text + '\tn';

  //Sized files
    mkdir(smalldir);
  //Thumbfiles
    mkdir(tndir);

//-------------------------------------------------------------
//Kopieren

//Abarbeiten der Files im ordner durch TListbox
for i:=0 to filelistbox1.Count-1 do
  begin

  //Kopieren in das Verzeihnis für die Sized Images

    Quelldatei:=filelistbox1.Items.Strings[i];
    Zieldatei:=smalldir+'\'+filelistbox1.Items.Strings[i];

  if not CopyFile(PChar(Quelldatei), PChar(Zieldatei), true) then
    ShowMessage('Datei "'+Quelldatei+'" konnte nicht kopiert werden!');

  //Kopieren in das Verzeichnis für Thumb Images

    Zieldatei:=tndir+'\'+filelistbox1.Items.Strings[i];

      if not CopyFile(PChar(Quelldatei), PChar(Zieldatei), true) then
        ShowMessage('Datei "'+Quelldatei+'" konnte nicht kopiert werden!');

    //Testausgabe des Pfades am Formular: Test erfolgreich, Pfad 100% OK
      label8.caption:=Dir + '\Original Files';

    //Kopieren in das Verzeichnis Originale Bilder
    Zieldatei:=Dir+'\'+'Original Files';

      if not CopyFile(PChar(Quelldatei), PChar(Zieldatei), true) then
      ShowMessage('Datei "'+Quelldatei+'" konnte nicht kopiert werden!');

      //DirectoryListbox Updaten
      directorylistbox1.Update;

  end;
Vielleicht kann mir ja hier wieder jemand helfen.

Sam

Christian Seehase 21. Aug 2008 17:35

Re: Kopieren klappt erst und dann wieder nicht - Fehlersuche
 
Moin Sam,

der dritte Parameter von CopyFile heisst FailIfExists, und der steht bei Dir auf true. ;-)

BTW:
Such' hier mal nach Hier im Forum suchenSHFileOperation.
Damit kann man auch kopieren, u.a. auch die Sicherheitseinstellungen, die bei CopyFile nicht mit kopiert werden.
Es gibt auch einen Eintrag dazu in der Code-Lib.
Ausserdem kann man damit auch mehrere Dateien auf einmal kopieren, so dass Du keine Schleife benötigst.

Sam Razr 21. Aug 2008 17:40

Re: Kopieren klappt erst und dann wieder nicht - Fehlersuche
 
Alles klar, danke. Ich werd mal rumsehen!

Sam

thkerkmann 21. Aug 2008 19:25

Re: Kopieren klappt erst und dann wieder nicht - Fehlersuche
 
Hi,

und was ist das da ?
Delphi-Quellcode:
if combobox1.text='Concertphotos' then kind:='G' else kind:='D';
  if combobox1.text='Session' then kind:='S' else kind:='D';
  if combobox1.text='Other Photos' then kind:='D' else kind:='D';
da kommt doch immer bei kind nur ein D raus. Wozu soll das also gut sein ?

Delphi-Quellcode:
  if combobox1.text='Concertphotos' then kind:='G'
  else if combobox1.text='Session' then kind:='S'
  else if combobox1.text='Other Photos' then kind:='D'
  else kind:='D';
wäre wohl besser geeignet.

Gruss

DeddyH 21. Aug 2008 19:28

Re: Kopieren klappt erst und dann wieder nicht - Fehlersuche
 
Die letzte Abfrage kannst Du Dir komplett sparen.

mkinzler 21. Aug 2008 19:28

Re: Kopieren klappt erst und dann wieder nicht - Fehlersuche
 
Dann ist aber auch diese Zeile unnötig
Delphi-Quellcode:
else if combobox1.text='Other Photos' then kind:='D'


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