![]() |
Kopieren von Dateien während zugriff ..???
Halli Hallo, Problemchen :
Delphi-Quellcode:
Aufruf erfolgt dann logischerweise über :
function CopyFileEx(const ASource, ADest: String;
ARenameCheck: boolean = true): 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;
Delphi-Quellcode:
So 1. Die Quelle befindet sich immer auf einem anderen Rechner im Netzwerk
CopyFileEx(pchar('\\'+serverip+'\protax\dbase\*_servclient.*'),GetApplicationDirectory+'dbase\');
2. Kopiere alle Dateien die in Ihrem Namen ein _servclient zu stehen haben aber alle datentypen werden kopiert. + (Dafür das * nach dem . ) Alles funktioniert einbandfrei ---- NUR NICHT DANN wenn die Quelle im Zugriff ist. Mit CopFile währe das egal aber da kann ich ja keine Ordner kopieren. Bitte um eure Hilfe und Danke im vorraus. |
Re: Kopieren von Dateien während zugriff ..???
Das laesst sich nur dadurch lesen, dass du die Dateien auf jenen Rechnern so oeffnest, dass auch lesezugriff weiterhin gestattet ist. Ansonsten seh ich da keine andere Moeglichkeit.
|
Re: Kopieren von Dateien während zugriff ..???
Moin ozi,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS. Ich möchte aber mal bezweifeln, dass es mit CopyFile geht, wenn SHFileOperation fehlschlägt. Entweder die Datei wurde exklusiv geöffnet, so dass kein anderer Prozess sie lesen kann, oder nicht. Prüf' dass doch noch einmal. |
Re: Kopieren von Dateien während zugriff ..???
Das der/die andere Prozess die Datei zum lesen freigebegen haben muß (SharedRead), wurde ja schon gesagt, aber man muß ja auch selber die freigaben entsprechend gesetzt haben, also Nurlesezugriff und natürlich muß auch noch der Zugriff für den anderen Prozess gestattet sein (SharedReadWrite).
Die Prozesse dürfen sich halt nicht gegenseitig blokieren, sonst geht's nicht :) |
Re: Kopieren von Dateien während zugriff ..???
Probiers mal hiermit:
Delphi-Quellcode:
var
Mem: TMemoryStream; FilePathA, FilePathB: string; begin FilePathA := Edit1.Text; // Pfad der zu kopierenden Datei FilePathB := Edit2.Text; // Zielpfad Mem := TMemoryStream.Create; try Mem.LoadFromFile(FilePathA); Mem.SaveToFile(FilePathB); finally Mem.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:56 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 by Thomas Breitkreuz