AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Kopieren von Dateien während zugriff ..???
Thema durchsuchen
Ansicht
Themen-Optionen

Kopieren von Dateien während zugriff ..???

Ein Thema von ozi · begonnen am 30. Jan 2006 · letzter Beitrag vom 31. Jan 2006
Antwort Antwort
ozi

Registriert seit: 30. Jan 2006
4 Beiträge
 
#1

Kopieren von Dateien während zugriff ..???

  Alt 30. Jan 2006, 23:40
Halli Hallo, Problemchen :

Delphi-Quellcode:
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;
Aufruf erfolgt dann logischerweise über :
CopyFileEx(pchar('\\'+serverip+'\protax\dbase\*_servclient.*'),GetApplicationDirectory+'dbase\'); So 1. Die Quelle befindet sich immer auf einem anderen Rechner im Netzwerk
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.
  Mit Zitat antworten Zitat
thomasw

Registriert seit: 3. Dez 2005
36 Beiträge
 
#2

Re: Kopieren von Dateien während zugriff ..???

  Alt 30. Jan 2006, 23:50
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.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Kopieren von Dateien während zugriff ..???

  Alt 31. Jan 2006, 10:04
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Kopieren von Dateien während zugriff ..???

  Alt 31. Jan 2006, 11:15
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Xcessive_
(Gast)

n/a Beiträge
 
#5

Re: Kopieren von Dateien während zugriff ..???

  Alt 31. Jan 2006, 11:19
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;
  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 16:39 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