AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FileExists mit UNC Dateifreigabe

Ein Thema von ol1uw · begonnen am 2. Aug 2004 · letzter Beitrag vom 2. Aug 2004
Antwort Antwort
ol1uw

Registriert seit: 24. Jul 2004
Ort: Freiberg
69 Beiträge
 
Delphi 11 Alexandria
 
#1

FileExists mit UNC Dateifreigabe

  Alt 2. Aug 2004, 20:38
Hallo Allerseits

Delphi-Quellcode:
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;
Beide Versuche funktionieren prima solange die Freigabe existiert, wenn nun aber das Freigabe nicht erreichbar ist
(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
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: FileExists mit UNC Dateifreigabe

  Alt 2. Aug 2004, 20:48
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
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
ol1uw

Registriert seit: 24. Jul 2004
Ort: Freiberg
69 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: FileExists mit UNC Dateifreigabe

  Alt 2. Aug 2004, 21:30
Danke für den Tip

Du meinst so in etwa

Delphi-Quellcode:
  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;
P.S. Die BackSlash's waren auch beim ersten alle da
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: FileExists mit UNC Dateifreigabe

  Alt 2. Aug 2004, 21:32
ja von der funktionalität meinte ich genau das
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 02:44 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