PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java: Windows shares auflisten


elianda
2006-06-19, 09:58:02
Wie kann ich unter Java unter Win die Windows shares auflisten, mit folgenden Code geht es nicht:

File f=new File("\\mypc\");
String fl[]=f.list(new FileNameFilter(...));

fl ist danach null.

Kennt da jemand eine Moeglichkeit, die funktioniert?

P.S.: \\mypc\myshare\ geht dann wieder, nur die shares selbst nicht.

mithrandir
2006-06-19, 11:53:09
Dere!

Bist du sicher, dass die Datei, die durch das Objekt "f" repräsentiert wird, auch wirklich existiert (File#exists)? Ich denke nicht, dass du so einfach mit den doch ziemlich plattformunabhängigen Java Klassen hier weiterkommst.

Warum setzt du nicht einfach einen System-Call ab, wenn's nur auf Windows laufen soll (sowas in der Art von Runtime.getRuntime().exec( "net share" )) und wertest dessen Ausgabe aus?

bye, Peter

Juerg
2006-06-19, 16:05:02
mithrandir[/POST]']Dere!Was ist Dere!?

Juerg
2006-06-19, 16:07:47
elianda[/POST]']Wie kann ich unter Java unter Win die Windows shares auflisten, mit folgenden Code geht es nicht:

File f=new File("\\mypc\");
String fl[]=f.list(new FileNameFilter(...));

fl ist danach null.

Kennt da jemand eine Moeglichkeit, die funktioniert?

P.S.: \\mypc\myshare\ geht dann wieder, nur die shares selbst nicht."net view \\mypc" geht auch...

darph
2006-06-19, 18:04:48
Juerg[/POST]']Was ist Dere!? 'ne Anrede. Nyx verruchtes.

elianda
2006-06-20, 15:17:00
Also das Programm laeuft schon Plattformuebergreifend.
Jedoch waere es unter Win nett auch die Freigaben wie Verzeichnisse zu sehen.

Das Programm selbst bietet an dieser Stelle sowas wie einen Browser durch Verzeichnisse. Das mit f.exists() werde ich gleich mal testen (sobald mein Rechner wieder verfuegbar ist).

Ansonsten ist die "net view" Loesung da sehr aufwendig, da ich wenn fl==null und der filename mit "\\" beginnt, checken muss ob das Hostsystem Windows ist und dann die Ausgabe des Aufrufs von net view parsen muss.
Geht vermutlich, ist aber sehr aufwendig.