![]() |
FileExists mit UNC Dateifreigabe
Hallo Allerseits
Delphi-Quellcode:
Beide Versuche funktionieren prima solange die Freigabe existiert, wenn nun aber das Freigabe nicht erreichbar ist
procedure TForm1.FormCreate(Sender: TObject);
var FileHandle : Integer ; Exists : Boolean ; Begin FileHandle := FileOpen('\\192.168.1.2\public\test.txt', fmOpenRead or fmShareDenyNone); if FileHandle > 0 then Begin Exists:=True; Fileclose(FileHandle); end else Exists:=False; end; procedure TForm1.FormCreate(Sender: TObject); var Exists : Boolean ; Begin Exists := FileExists('\\192.168.1.2\public\test.txt'); end; (Computer aus) benötigen beide ca. 10 - 20 Sekunden um festzustellen das die Datei nicht existiert. Nun die Frage gibt es eine "schnellere" Methode ? bzw. Wie die Erreichbarkeit einer Freigabe testen ? MfG Uwe |
Re: FileExists mit UNC Dateifreigabe
du könntest nur selbst vorher ein ping versuchen oder ein connect auf den Freigabeport mit entsprechneder Timeouteinstellung. Von Windows her liegt das Timeout eben höher und deshalb die 20 Sekunden oder so
|
Re: FileExists mit UNC Dateifreigabe
Danke für den Tip
Du meinst so in etwa
Delphi-Quellcode:
P.S. Die BackSlash's waren auch beim ersten alle da
function ShareOnline(unc: string): Boolean;
var IdTCPClient1: TIdTCPClient; begin if Pos('\\', unc) = 1 then begin IdTCPClient1 := TIdTCPClient.Create(Self); with IdTCPClient1 do begin Name := 'IdTCPClient1'; Port := 139; end; Delete(unc, 1, 2); Delete(unc, Pos('\', unc), Length(unc)); IdTCPClient1.Host := unc; try IdTCPClient1.Connect(500); except Result := false; end; if IdTCPClient1.Connected then begin IdTCPClient1.Disconnect; Result := true; end; end; end; |
Re: FileExists mit UNC Dateifreigabe
ja von der funktionalität meinte ich genau das
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 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