AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Hat das Kopieren de Verzeichnisses geklappt?
Thema durchsuchen
Ansicht
Themen-Optionen

Hat das Kopieren de Verzeichnisses geklappt?

Ein Thema von calculon · begonnen am 7. Mai 2007 · letzter Beitrag vom 7. Mai 2007
Antwort Antwort
Benutzerbild von calculon
calculon

Registriert seit: 16. Sep 2006
256 Beiträge
 
Delphi 7 Personal
 
#1

Hat das Kopieren de Verzeichnisses geklappt?

  Alt 7. Mai 2007, 14:39
Hi Leute,

ich kopiere mit den gängigen Funktionen (ShellAPI) ein Verzeichnis. Wenn nun während des Kopiervorganges auf "Abbrechen" geklickt wird und ich überprüfen will, ob der Kopiervorgang erfolgreich war, kann ich ich ja nicht einfach if DirectoryExists .. benutzen, da ein Teil ja kopiert wurde und die Funktion TRUE zurückgeben würde.

Wie kann ich denn überprüfen, ob ein Verzeichnis komplett kopiert wurde?

Gruß

Caluclon
--
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#2

Re: Hat das Kopieren de Verzeichnisses geklappt?

  Alt 7. Mai 2007, 14:48
Die "gängigen" Funktionen geben ihrerseits auch Werte zurück, welche über den Bearbeitungsstatus berichten.

Hast diese mal geprüft.


Davon abgesehn, was ist bei dir gängig (z.B. wie sieht deine Kopierfunktion aus).



Wenn du ganz sichergehn willst, dann bleibt dir nur der Vergleich,
also Dateien auflisten und nachsehn, ob diese auch in der Kopie vorhanden sind.
Und eventuell noch den Dateiinhalt prüfen, denn die Datei könnte ja da sein, aber deren Inhalt muß ja deßhalbt nicht auch gleich stimmen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von calculon
calculon

Registriert seit: 16. Sep 2006
256 Beiträge
 
Delphi 7 Personal
 
#3

Re: Hat das Kopieren de Verzeichnisses geklappt?

  Alt 7. Mai 2007, 14:52
Ich benutze:

Delphi-Quellcode:
function DoFileWork(aOperation: FILEOP_FLAGS; aFrom, aTo: AnsiString;
    Flags: FILEOP_FLAGS): Integer;
var
  FromPath, ToPath: AnsiString;
  SHFileOpStruct: TSHFileOpStruct;
begin
  FromPath := aFrom + #0#0;
  ToPath := aTo + #0#0;
  with SHFileOpStruct do
  begin
    Wnd := 0;
    wFunc := aOperation;
    pFrom := PAnsiChar(FromPath);
    if ToPath <> 'then
    begin
      pTo := PAnsiChar(ToPath)
    end else begin // target available
      pTo := nil;
    end; // target not available
    fFlags := Flags;
  end; // structure
  Result := SHFileOperationA(SHFileOpStruct);
end;

{  FOF_ALLOWUNDO - Ermöglicht eine Umkehrung der letzten Operation
  FOF_FILESONLY - Verzeichnisse ignorieren
  FOF_MULTIDESTFILES - aTo hat einen Eintrag für jeden Eintrag in der aFrom Liste
  FOF_NOCONFIRMATION - Der User muss keine Bestätigung zum Überschreiben, etc. geben
  FOF_NOERRORUI - Fehlermeldugen unterdrücken
  FOF_NORECURSION - Unterverzeichnisse ignorieren
  FOF_RENAMEONCOLLISION - Datei umbenennen, wenn diese bereits im Zielverzeichnis existiert (Kopie 1 von ...)
   FOF_SILENT - Fortschrittsanzeige unterdrücken.  }
Zitat von himitsu:
Die "gängigen" Funktionen geben ihrerseits auch Werte zurück, welche über den Bearbeitungsstatus berichten.
Wie kann ich die denn abfragen? Ich benutze die Fkt. folgendermaßen:

DoFileWork(FO_COPY, edit1.Text, edit2.Text, FOF_AllowUndo or FOF_NoConfirmation or FOF_NOERRORUI); Gruß

Calculon
--
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#4

Re: Hat das Kopieren de Verzeichnisses geklappt?

  Alt 7. Mai 2007, 15:03
Result := SHFileOperationA... DoFileWork liefert einen Fehlercode als Integer

> MSDN-Library durchsuchenSHFileOperation

also
Delphi-Quellcode:
If DoFileWork(FO_COPY, edit1.Text, edit2.Text, FOF_AllowUndo
  or FOF_NoConfirmation or FOF_NOERRORUI) <> S_OK Then FEHLER('°_°');
S_OK = 0
und
Zitat von MSDN:
Return Value

Returns zero if successful, or nonzero otherwise.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von calculon
calculon

Registriert seit: 16. Sep 2006
256 Beiträge
 
Delphi 7 Personal
 
#5

Re: Hat das Kopieren de Verzeichnisses geklappt?

  Alt 7. Mai 2007, 15:13
Vielen Dank für deine Hilfe!

Gruß

Calculon
--
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:58 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