Name eines Netzlaufwerks ermitteln

UliS

Mitglied
Hallo,

Wenn ich den Namen eines Rechners oder Nas Laufwerks im Lan ermitteln will frage ich folgendermaßen ab:

Java:
InetAddress iAddr =  InetAddress.getByName(servername_oder_IP);
String hostname = iAddr.getHostName();

Ist der Server oder ein Ordner des Servers als Laufwerk gemappt, (unter Windows z.B. \\Nas\Folder auf Z:\ ) finde ich mit java keine Möglichkeit zu erkennen dass das Laufwerk Z auf einen Server verweist, bzw. wie ich den Namen des Servers rausfinden kann.

Weiss hier jemand Rat?

Gruß
Uli
 
In einer meiner alten Apps habe ich eine Methode die net use benutzt, um zu ermittlen, ob ein Netzwerkpfad auch als lokaler Pfad auf dem Rechner eingerichtet ist und gegebenenfalls diese Netzwerkurl in eine lokale Pfadangabe umwandelt.
Java:
	public static String getLocalPath(String path) {
		if (path ==null)
			return path;
		path = path.toUpperCase();
		try {
			Process process= Runtime.getRuntime().exec("net use");
			BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
			String line;
			String[] components;
			while ((line=in.readLine())!=null) {
				components = line.split("\\s+");
				if (components.length>2 && components[2].startsWith("\\\\")) {
					//System.out.println(components[2]);
					if (path.startsWith(components[2].toUpperCase())) {
						return components[1] + path.substring(components[2].length());
					}
				}
			}
		}
		catch (Exception exc) {exc.printStackTrace();}
		return path;
	}
 
Das ist schon mal ein guter Ansatz.
Hatte gehofft über eine externe Library was plattformunabhängiges zu finden.
Ich habe versucht mit JNDI was zu finden, bin aber nicht in die Tiefen vorgedrungen um zu verstehen was damit geht.

Uli
 

Zurück
Oben