Entwickler-Ecke

Netzwerk - Zugriff auf Netzwerklaufwerk


Rassi - Sa 20.08.11 15:55
Titel: Zugriff auf Netzwerklaufwerk
Hallo.
Ich greife von meinem Programm auf Dateien zu, die auf einem Netzwerklaufwerk liegen.
Dieses Netzwerklaufwerk ist auf dem Rechner auch mit einem Laufwerksbuchstaben versehen.
Nur, wenn Windows neu gestartet wird, sind diese Laufwerke nicht automatisch verbunden.
Wenn ich dann mit meinem Programm teste, ob der Pfad vorhanden ist, bekomme ich eine negative Antwort


C#-Quelltext
1:
2:
3:
4:
if (!Directory.Exists(Vari.Dokumentenpfade.strHauptpfad))
{
.....
}


Wenn ich nun im Explorer ein mal das Netzlaufwerk anklicke und es dann noch mal mit dem Programm versuche, klappt der Zugriff.
Kann ich über C# das Verbinden eines vereinbarten Netzlaufwerks durchführen?

Gruß
Rasmus


Christoph1972 - Sa 20.08.11 22:18

Hi,

versuch doch mal ob sich diese Funktion anders verhält!?



C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
class NetDrive
{
    public static Boolean IsAviable(string folder)
    {
        System.IO.DriveInfo drive = new System.IO.DriveInfo(folder);
        return drive.IsReady;
    }
}


Rassi - So 21.08.11 09:45

Hallo.
Danke für den Vorschlag.
Hab ich gerade versucht, leider das gleicher Ergebnis. Bekomme bei von drive.ISReady ein false zurück.


C#-Quelltext
1:
2:
3:
4:
5:
6:
System.IO.DriveInfo drive = new System.IO.DriveInfo(
                Vari.Dokumentenpfade.strHauptpfad);
if (!drive.IsReady)
{
  ...
}


Gruß
Rasmus


Christoph1972 - So 21.08.11 13:02

Schade....

user profile iconRassi hat folgendes geschrieben Zum zitierten Posting springen:

Wenn ich nun im Explorer ein mal das Netzlaufwerk anklicke und es dann noch mal mit dem Programm versuche, klappt der Zugriff.
Kann ich über C# das Verbinden eines vereinbarten Netzlaufwerks durchführen?


Hm........ :gruebel:

ok, eine Idee hätte ich:

Du könntest im Hintergznd versuchen den Explorer anzusprechen, damit der Status der Laufwerke neu initialisiert wird.


C#-Quelltext
1:
System.Diagnostics.Process.Start("explorer",@"c:\test");                    


Ob das funktioniert kann ich nicht sagen, aber versuchen könnte man es.

Vielleicht gibts aber noch eine bessere Idee?