PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Pfade prüfen ob Netz oder lokal? Geschwindigkeitstest auf den Pfad?


icemanemp
2004-10-13, 08:31:44
Hi,

ich wollte mal bischen hobbiemässig an nem Open-Source Projekt mitarbeiten.
Vorher hab ich nur Delphi gemacht und mach jetzt das Projekt in C++ mit MFC unterstützung...

Frage: Gibt es ein Befehl der MFC oder direkt von der WinAPI, der mit sagt ob ein Pfade auf dem lokalen Rechner ist oder sich im Netzwerk befindet? Z.B. hab ich den pfad \\Rechner1\C-Laufwerk da erkennt man ja gleich an den \\ das es Netzwerk ist, aber was ist ,wenn ich den Pfad als Netzlaufwerk in Windows verbunden habe... Ich wollte mir jetzt net umbedingt ne Funktion schreiben, die mir die merkmale \\ aus dem Pfad sucht und dann sagt, das ist Netzwerk und das ist lokal... Da die Funktion ja schon nicht mehr richtig arbeiten würden, wenn ein Netzlaufwerk verbunde wäre! Also gibt es dan ne Funktion?

Wenn ich nun ermittelt habe, ob es sich um ein lokales oder Netzlaufwerk handelt, würde ich gerne die übertragungsgeschwindigkeit messen am besten in kbyte/s oder mbyte/s... Die einzigste Idee, wäre ein Timer, der zählt, solange ich brauch ne Datei mit fester Grösse in den Pfad zu schieben und wieder zurückzuschreiben... oder gibt es da Funktionalitäten von Windows? oder anderen freien Headerdateien die ich einbinden kann?

Jazz
2004-10-13, 10:39:14
Zumindest für den Pfadnamen könntest du es mal mit GetFullPathName versuchen. Ich weiß jetzt allerdings nicht, was er bei Netzpfaden vorne ransetzt, aber probieren geht ja bekanntlich über studieren ...

Gruß,
Jazz

icemanemp
2004-10-13, 10:47:45
Den vollen Pfadenamen, den ich dann erhalten würde, könnte ich auch nur wieder mit eigenen Funktionen analysieren ob er ein "\\" für Netzwerkpfade drin hat. Aber gibt es da nix fertiges von Windows oder sonst wem? Da es vielleicht Fälle gibt ,wo die Analyse falsche Ergebnisse liefert. Die Situationen kenn ich vielleicht nicht, aber könnten ja auftreten...

Crushinator
2004-10-13, 11:04:00
Die API-Funktion GetDriveType (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/getdrivetype.asp) ist Dein Freund und möchte als Parameter den Rootpfad, beispielsweise "i:\" haben. Als Rückgabewert gibt die Funktion bei Remote/Netzlaufwerken die Konstante DRIVE_REMOTE zurück, welche 4 entspricht. :)

icemanemp
2004-10-13, 11:55:29
Das ist doch schonmal was!

Und bei Pfade die ein "\\" geh ich dann einfach direkt davon aus, das es Netzwerkpfade sind! Oder? Dann schreib ich mir das nämlich selbst...

Crushinator
2004-10-13, 14:31:32
Genau. :)