Guten Morgen,
habe folgendes Problem:
Wir haben in der Firma ein Laufwerk im Netz, auf dem die Grafiken der Archäologie abgelegt sind. Leider sind diese Grafiken auf der ganzen Platte verstreut; zum Verkleinern der Dateigrößen durchsuchte ich die Platte und vermerkte Ursprungs-Pfad und andere Datei-Attribute in einer ABS-Datenbank.
Beim Kopieren lese ich die Datenbank und erstelle auf der leeren Festplatte ein Verzeichnis mit der ID aus der
DB als Bezeichnung; so habe ich für spätere Zurückkopier-Aktionen eine eindeutige Pfad-Zuordnung.
ich kopiere mit folgender Funktion:
Delphi-Quellcode:
function Tform1.CopyFileEx(const ASource, ADest: string;
ARenameCheck: boolean = false): boolean;
var
sh: TSHFileOpStruct;
begin
sh.Wnd := Application.Handle;
sh.wFunc := FO_COPY;
// String muss mit #0#0 Terminiert werden, um das Listenende zu setzen
sh.pFrom := PChar(ASource + #0);
sh.pTo := PChar(ADest + #0);
sh.fFlags := fof_Silent or fof_MultiDestFiles;
if ARenameCheck then
sh.fFlags := sh.fFlags or fof_RenameOnCollision;
Result:=ShFileOperation(sh)=0;
end;
Das funktioniert auch super; aber z.B. in einem Verzeichnis bricht er nach der Datei 101.jpg ab und kann angeblich 278 Dateien nicht lesen - danach kopiert er wieder anstandslos weiter.
Wenn ich die Dateien manuell kopiere (kopieren - einfügen), funktioniert es einwandfrei; nur Delphi tut sich schwer.
Hat Jemand von Euch eine Idee, woran es liegen könnte.
Danke schonmal für Eure Hilfe.
Gruß Bernd