Forums Neueste Beiträge
 

Antwortzeit bei Anwahl eines Verzeichnisses im Netzwerk

18/06/2009 - 14:42 von René Nüssli | Report spam
Hallo zusammen,
nach langer Zeit habe ich da mal wieder eine Frage.
Konfiguration:
Windows XP SP3
ein Verzeichnis auf einem PC im Netz und freigegeben
auf meinem PC eine Netzlaufwerkverknüpfung mit diesem Verzeichnis erstellt
eine eigenstàndige Routine (Klasse) zum prüfen des Pfades
Übergabe des Resultates an die Hauptroutine via ein Parameter einer Klasse
(glb.NetFault)

Nun das Problem!!
ich versuche mit "chDir (Pfad)" zu prüfen, ob das Verzeichnis erreichbar
ist.
wenn Ja, bekomme ich sofort eine Antwort. Kein Problem.
wenn Nein (z.B. Netzkabel am andern PC gezogen), geht es ca. 25 Sekunden bis
ich eine Antwort von Windows bekomme.
Wàhrend dieser Zeit blockiert es meine Anwendung komplett.

Meine Frage:
gibt es eine Möglichkeit den Pfad zu prüfen (eventuel Abfrage eine
Parameters) damit ich sofort eine Antwort bekomme?
Noch eine Information:
wenn ich diese Abfrage mehrmals schnell hintereinander mache, bekomme ich
sofort Antwort. Ist jedoch eine gewisse Zeitspanne dazwischen,
geht es wieder diese 25 Sekunden. Das selbe Zenario kann man mit dem Windows
Explorer (eine Verknüpfung auf dieses Verzeichnis anwàhlt) feststellen.

Es wàre schön, wenn mir einer dabei helfen könnte.
Danke im voraus

Gruss
René
 

Lesen sie die antworten

#1 Thorsten Albers
18/06/2009 - 15:06 | Warnen spam
René Nüssli schrieb im Beitrag
<#...
ich versuche mit "chDir (Pfad)" zu prüfen, ob das Verzeichnis erreichbar
ist.



Das ist keine gute Methode, da sie für eine simple Abfrage etwas im System
bzw. Prozeß àndert.
Verwende GetFileAttributes():

Private Declare Function GetFileAttributes _
Lib "kernel32" _
Alias "GetFileAttributesA" _
( _
ByVal pFileName As String _
) As Long


Const FILE_ATTRIBUTE_DIRECTORY As Long = &H10

Dim MeinNetzVerzeichis As String
Dim Ergebnis As Long

Ergebnis = GetFileAttributes(MeinNetzVerzeichnis)
If Ergebnis = &HFFFFFFFF Then
' Verzeichnis/Datei existiert nicht
Else If (Ergebnis And FILE_ATTRIBUTE_DIRECTORY) Then
' Verzeichnis existiert
Else
' Pfad existiert, weist aber auf eine Datei, kein Verzeichnis
End If

Thorsten Albers

albers (a) uni-freiburg.de

Ähnliche fragen