AGB  ·  Datenschutz  ·  Impressum  







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

DirectoryExists im Netzwerk will nicht wie ich

Ein Thema von Marco Steinebach · begonnen am 4. Feb 2015 · letzter Beitrag vom 10. Feb 2015
Antwort Antwort
Seite 1 von 2  1 2      
Marco Steinebach

Registriert seit: 4. Aug 2006
491 Beiträge
 
Delphi 5 Enterprise
 
#1

DirectoryExists im Netzwerk will nicht wie ich

  Alt 4. Feb 2015, 19:46
Delphi-Version: 5
Hallo zusammen,
Ausgangssituation: ich habe eine VPN-Verbindung zu einem anderen PC und ein gemaptes Laufwerk.
Mein Programm soll mittels
DirectoryExists ('n:\blabla')
herausfinden, ob das Verzeichnis auf dem Netzwerk-Laufwerk erreichbar ist.
Das gibt aber nix, da DirectoryExists immer false zurückliefert.
Rufe ich den Explorer auf, gehe auf das Laufwerk und in das gewünschte Verzeichnis hinein, und starte anschließend mein Programm, ist alles schön.
Ich hab mich zwar schon durchgegooglt, und auch schon gefunden, daß ich nicht der einzige bin, aber kann mir vielleicht jemand sagen
1. warum das so ist
und wie man
2. verhindern kann, daß man erst mit dem Explorer in das Verzeichnis gehen muß, damit das Programm funktioniert?

Für Hilfe wäre ich echt dankbar.
Herzlich grüßt
Marco
Marco Steinebach

Geändert von Marco Steinebach ( 4. Feb 2015 um 20:03 Uhr)
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#2

AW: DirectoryExists im Netzwerk will nicht wie ich

  Alt 4. Feb 2015, 21:41
Delphi 5 Standard...naja...
http://www.delphipraxis.net/1222644-post11.html
...in XE2 ist die Funktion wesentlich umfangreicher.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: DirectoryExists im Netzwerk will nicht wie ich

  Alt 4. Feb 2015, 22:38
Der Windowsexplorer wird hier im Hintergrund einen Logon bzw. ein Connect auf ein im Moment nicht verbundenes LW durchführen. Diesen Connect müsstest du nachimplementieren.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: DirectoryExists im Netzwerk will nicht wie ich

  Alt 5. Feb 2015, 02:01
Vielleicht auch mal nachschauen ob, bzw. welchen ErrorCode das DirectoryExists zurück gibt?
Eventuell erfährt man da mehr, warum es nichts findet.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von roga
roga

Registriert seit: 15. Jun 2008
Ort: Sachsen-Anhalt
109 Beiträge
 
Delphi XE8 Professional
 
#5

AW: DirectoryExists im Netzwerk will nicht wie ich

  Alt 5. Feb 2015, 05:58
Wie Bernhard bereits schrieb, über den Windows Explorer erfolgt das Login automatisch. Ich habe auch eine Weile nach einer Lösung gesucht:
Delphi-Quellcode:
function ConnectToNetwork(NetPath: WideString): DWORD;
var
  NetResource: TNetResourceW;
begin
  // Abschließendes "\" aus NetPath entfernen!
  if NetPath[Length(NetPath)] = '\then Delete(NetPath, Length(NetPath), 1);
  ZeroMemory(@NetResource, SizeOf(TNetResource));
  with NetResource do
  begin
    dwType := RESOURCETYPE_ANY;
    lpLocalName := nil;
    lpRemoteName := PWideChar(NetPath);
    lpProvider := nil;
  end;
  Result := WNetAddConnection2W(NetResource, nil, nil, CONNECT_INTERACTIVE);
end;
Vorher wird noch geprüft, ob es sich um ein Netzwerkverzeichnis handelt:
Delphi-Quellcode:
if Copy(DBPath, 1, 2) = '\\then
begin
  if ConnectToNetwork(DBPath) <> 0 then
    // keine Verbindung zum Netzwerkordner
  ...
end;
Ich hoffe, ich konnte Dir weiterhelfen.

roga
Ronald
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#6

AW: DirectoryExists im Netzwerk will nicht wie ich

  Alt 5. Feb 2015, 06:21
...eine VPN-Verbindung zu einem anderen PC
Über alle USB Anschlüsse iterieren, um ein bestimmtes Gerät zu finden
Wer lesen kann, ist klar im Vorteil.
Delphi 5 Standard...naja...
Kann man mit dem modernsten Delphi das Problem besser lösen?
So mancher Beitrag ...naja...
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: DirectoryExists im Netzwerk will nicht wie ich

  Alt 5. Feb 2015, 06:59
Wer lesen kann, ist klar im Vorteil.
Den darfst dir selber als heutiges Tagesmotto auf den Bildschirm kleben

In dem explizit verlinkten Beitrag des Themas wird die aktuellste Version von DirectoryExists gezeigt (aus Delphi XE2). Die arbeitet etwas zuverlässiger.

Allerdings wird diese Funktion alleine es nicht schaffen die Verbindung herzustellen genau wie die andere Funktion es nicht schaffen wird, denn es handelt sich ja um ein gemapptes Laufwerk und da bringt ein Test auf '\\' am Anfang des Pfads irgendwie nichts.

Es braucht dort noch ein wenig mehr
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.539 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: DirectoryExists im Netzwerk will nicht wie ich

  Alt 5. Feb 2015, 07:03
Man müsste aber doch mit GetDriveType etc. herausfinden können, ob es sich um ein Netzlaufwerk handelt, dessen UNC-Pfad ermitteln und dann versuchen, sich zu verbinden, oder?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

AW: DirectoryExists im Netzwerk will nicht wie ich

  Alt 5. Feb 2015, 07:04
...eine VPN-Verbindung zu einem anderen PC
Über alle USB Anschlüsse iterieren, um ein bestimmtes Gerät zu finden
Wer lesen kann, ist klar im Vorteil.
Da kann ich Dir nur zustimmen, die Überschrift ist ein wenig irreführend.

Aber davon abgesehen, gibt es zwei Arten von Netzlaufwerken?
Ich kenne Sie nur als h:\...z:\ und die sind verfügbar oder gar nicht vorhanden. Das beschriebene Verhalten kenne ich nur von Diskettenlaufwerken (oder Wechselplatten).

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

AW: DirectoryExists im Netzwerk will nicht wie ich

  Alt 5. Feb 2015, 08:13
In dem explizit verlinkten Beitrag des Themas wird die aktuellste Version von DirectoryExists gezeigt (aus Delphi XE2). Die arbeitet etwas zuverlässiger.

Allerdings wird diese Funktion alleine es nicht schaffen die Verbindung herzustellen genau wie die andere Funktion es nicht schaffen wird, denn es handelt sich ja um ein gemapptes Laufwerk und da bringt ein Test auf '\\' am Anfang des Pfads irgendwie nichts.

Es braucht dort noch ein wenig mehr
Wobei genaugenommen das DirectoryExisits doch eigentlich richtig funktioniert.
"Im Moment ist dieser Pfad nicht existent" ... Ob er das wäre, nachdem man das Netzlaufwerk verbindet, ist eine andere Angelegenheit.

Wenn man direkt das Rootverzeichnis prüft, as kommt da denn bei raus?


Wer kennt noch die Geschichte "Meister, wie kann ich prüfen, ob der Computer mit dem Internet verbunden ist?" ?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:18 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