Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Probl:Dateioperationen mit SHFileOperation-versch. Unterverz (https://www.delphipraxis.net/2149-probl-dateioperationen-mit-shfileoperation-versch-unterverz.html)

bogy 9. Jan 2003 10:27


Probl:Dateioperationen mit SHFileOperation-versch. Unterverz
 
Hallo,

***
Frage bezieht sich auf Programmcode:
http://www.delphipraxis.net/viewtopi...hfileoperation
***

ich sitze hier an einem Program, daß Dateien aus verschiedenen Ordnern mit oder ohne Unterverzeichnisse in einen anderen Ordner meiner Wahl kopieren soll.

Leider stellt sich dabei folgendes Problem. Er kopiert, jedoch alle Dateien in einen Unterordner (den ersten). Würde der Quellcode diesen Fehler machen?

Mein Problem entsteht wahrscheinlich nur durch einen Parameter, der nicht dokumentiert ist:
Was macht das "Assigned(aTo)"? Das habe ich bisher nicht eingesetzt.

Wenn meine Situation nicht richtig klar ist, ein Beispiel:

C:\boot.ini
c:\BeispielVerz\Unterverz\hallo.txt
C:\2tesVerz\huhu.txt

sollen nach

D:\dahin\

dabei sollen alle Dateinamen verändert werden, also (huhu.txt -> hihi.txt), usw.

So müßte entstehen:

D:\dahin\beep.ini
D:\dahin\BeispielVerz\Unterverz\hehe.txt
D:\dahin\2tesVerz\hihi.txt

Ist so etwas möglich, wenn ich ihm dafür zwei Strings übergeben würde (leicht geändertes DoFileWork()):

1. C:\boot.ini#0c:\BeispielVerz\Unterverz\hallo.txt#0 C:\2tesVerz\huhu.txt#0#0

2.
D:\dahin\beep.ini#0D:\dahin\BeispielVerz\Unterverz \hehe.txt#0D:\dahin\2tesVerz\hihi.txt#0#0

Christian Seehase 9. Jan 2003 13:41

Moin bogy,

erst einmal herzlich willkommen.

Die Lösung für Dein Problem hast Du eigentlich schon selbst gefunden.

Wenn Du die Dateien unter anderem Namen woanders hinspeichern willst, benötigst Du
  • Eine Liste der Dateien, die kopiert werden sollen (From) jeweils inclusive des kompletten Pfades (Laufwerk\Verzeichnis(struktur)\Dateinamen)
  • Eine Liste der Zieldateinamen (To), wiederum jeweils der gesamte Pfade
  • Wichtig: Es muss je Quelldatei eine Zieldatei angegeben werden, ausserdem sind keine Wildcards (*,?) erlaubt.
  • In den Flags muss FOF_MULTIDESTFILES angegeben werden

Der 1. Eintrag in der aFrom Liste wird dahin, und unter dem Namen kopiert, der sich aus dem 1. Eintrag der aTo Liste ergibt, usw.

Das nur mal grob zusammengefasst.


Lies Dir am Besten noch einmal den von Dir selbst gefundenen Beitrag genau durch. Da ist eigentlich alles beschrieben was Du brauchst.

sakura 9. Jan 2003 13:46

Ach dieses FOF_MULTIDESTFILES habe ich jetzt mal noch in meinen Library-Eintrag in den Code eingearbeitet. :oops: Dann sollte es auch gehen. In der Doku hatte ich den immerhin schon erwähnt.


Das wars...

bogy 9. Jan 2003 17:17

Das war fehlende Teil!
 
Nach Einsatz von FOF_MULTIDESTFILES funktioniert es, danke...

Frederik


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz