Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Zugriff auf Dateien, die ein FTP Server "betreut" (https://www.delphipraxis.net/131617-zugriff-auf-dateien-die-ein-ftp-server-betreut.html)

zeras 27. Mär 2009 16:37


Zugriff auf Dateien, die ein FTP Server "betreut"
 
Ich habe einen FTP Server auf meinem Rechner (XP) installiert. Die Dateien in den Pfaden überwache ich mit einem Delphiprogramm. Da man ja auf offene Dateien nicht zugreifen kann, habe ich folgende Funktion im Netz gefunden und ein wenig angepaßt:

Delphi-Quellcode:
function FileInUse(const FileName: String): boolean;
var
  HFileRes : HFILE;

begin
  Result := false;
  if not FileExists(FileName) then exit;
  HFileRes := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE,0, nil, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, 0);
  Result := (HFileRes = INVALID_HANDLE_VALUE);
  if not Result then CloseHandle(HFileRes);
end;
Ich prüfe mit der Funktion, ob die Datei nicht genutzt wird und dann kopiere ich mir diese auf einen anderen Pfad, um diese dann auszuwerten.
Trotzdem erscheint manchmal eine Windowsmeldung, dass der Zugriff auf die Datei nicht geklappt hat.

Oder hat jemand eine andere Idee, solche Dateien auszuwerten?

TurboMartin 27. Mär 2009 16:51

Re: Zugriff auf Dateien, die ein FTP Server "betreut&qu
 
Zitat:

Zitat von zeras
Ich habe einen FTP Server auf meinem Rechner (XP) installiert. Die Dateien in den Pfaden überwache ich mit einem Delphiprogramm. Da man ja auf offene Dateien nicht zugreifen kann, habe ich folgende Funktion im Netz gefunden und ein wenig angepaßt:

Delphi-Quellcode:
function FileInUse(const FileName: String): boolean;
var
  HFileRes : HFILE;

begin
  Result := false;
  if not FileExists(FileName) then exit;
  HFileRes := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE,0, nil, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL, 0);
  Result := (HFileRes = INVALID_HANDLE_VALUE);
  if not Result then CloseHandle(HFileRes);
end;
Ich prüfe mit der Funktion, ob die Datei nicht genutzt wird und dann kopiere ich mir diese auf einen anderen Pfad, um diese dann auszuwerten.
Trotzdem erscheint manchmal eine Windowsmeldung, dass der Zugriff auf die Datei nicht geklappt hat.

Oder hat jemand eine andere Idee, solche Dateien auszuwerten?

So wie ich das sehe, holst Du dir Lese- und Schreibrechte. Wie wäre es, wenn du dir nur Leserechte holst? Zum Kopieren brauchst Du bei der vorhandenen Datei schließlich keine Schreibrechte.

zeras 27. Mär 2009 16:59

Re: Zugriff auf Dateien, die ein FTP Server "betreut&am
 
Ja, das hatte ich wahrscheinlich übersehen. Ich werde das mal einbauen und schauen, ob die Meldung wiederkommt.

Danke für den Tipp.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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