Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Frage zu Ordner kopieren (https://www.delphipraxis.net/31529-frage-zu-ordner-kopieren.html)

Henry 10. Okt 2004 20:12


Frage zu Ordner kopieren
 
Hallo,

ich habe hier folgenden Code gefunden der mein Vorhaben ermöglichen sollte.

Delphi-Quellcode:
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;
Wenn ich nun einen Ordner als Quelle angebe der nicht in meinem Programm genutzt wird, dann funktioniert es einwandfrei.
Nehme ich aber einen Ordner auf den ich mit meinem Programm zugreife, dann bekomme ich die Meldung das die Quelldatei nicht gelesen werden könnte.

Ich möchte aber den Ordner sichern und muß ihn somit kopieren wenn das Programm läuft. Ist es denn nicht möglich ein komplettes Verzeichnis zu kopieren wenn auf Dateien zugegriffen wird (es wird nicht geschrieben sondern nur aus Dateien Informationen geladen)?

Kann mir da jemand einen Tip geben wo mein Fehler liegt?

Danke schon einmal.

Luckie 10. Okt 2004 20:21

Re: Frage zu Ordner kopieren
 
Wie hast du denn die dateien in dem Ordner geöffnet? Und warum schließt du sie nicht bevor du sie kopierst? Geöffnete Dateien zu kopieren ist sowieso gefährlich.

Henry 10. Okt 2004 20:29

Re: Frage zu Ordner kopieren
 
Geöffnet sind sie eigentlich nicht.
Ich lade aus den Dateien beim Programmstart die Items von ein paar Comboboxen.
Zu dem Zeitpunkt wo ich die Dateien (bzw. das Verzeichnis) kopieren möchte lade ich aber nichts daraus. Ich wüste nicht das sie noch geöffnet wären.
Habe auch gerade mal in die Proceduren gesehen und ich gebe auch eigentlich alles wieder frei.

Luckie 10. Okt 2004 20:42

Re: Frage zu Ordner kopieren
 
Wechsel vor dem Kopieren mal das Arbeitsverzeichnis mit MSDN-Library durchsuchenSetDirectory.

Henry 10. Okt 2004 20:56

Re: Frage zu Ordner kopieren
 
Auf der Seite habe ich nichts gefunden.
Kenne nur z.B. SetCurrentDir, was ich gerade ohne Erfolg probiert habe.
Kannst Du mir das mit SetDirectory mal beschreiben?

Luckie 10. Okt 2004 21:03

Re: Frage zu Ordner kopieren
 
Oh, das meinte ich eigentlich: SetCurrentDir.

Henry 11. Okt 2004 19:59

Re: Frage zu Ordner kopieren
 
Habe da noch einmal eine kleine Erweiterungsfrage zum Freigeben.

Wenn ich aus einer Datei in dem zu kopierenden Ordner mit
Delphi-Quellcode:
ComboBox8.Items.LoadFromFile(pfad + dateiname);
die Items lade muß ich dann die Combobox auch mit
Delphi-Quellcode:
ComboBox8.Free
freigeben um den zugriff auf die Datei zu beenden?
Denn ich habe noch einmal alles durchgesehen und konnte nicht feststellen woran es liegen könnte, das wäre meine einzige Idee.

Henry 11. Okt 2004 20:11

Re: Frage zu Ordner kopieren
 
Mir ist gerade noch etwas aufgefallen.
In dem Code den ich im Forum gefunden habe ist eine Variable fFlags auf FOF_FILESONLY gesetzt.
Da in dem Verzeichnis auch ordner sind, kann auch das das Problem sein. Ich habe in der Hilfe danach gesucht, konnte aber leider nichts darüber finden. Wo kann ich denn finden welche Konstanten ich da noch setzen kann?

Christian Seehase 11. Okt 2004 20:32

Re: Frage zu Ordner kopieren
 
Moin Henry,

ideal wäre es vermutlich, wenn Du Dir mal das PSDK bei MS herunterladen würdest, aber auch auf MSDN müsstest Du fündig werden können. MSDN-Library durchsuchenSHFILEOPSTRUCT

Henry 11. Okt 2004 20:53

Re: Frage zu Ordner kopieren
 
Gibt es die beiden denn auch auf deutsch? Mit Englisch hab ich es nicht so.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:57 Uhr.
Seite 1 von 3  1 23      

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