Laufwerksliste filtern

Benzol

Erfahrenes Mitglied
Ich würde gerne eine Liste aller Wechseldatenträger, welche an den Computer angeschlossen sind, angezeigt bekommen. Habe leider keinen passenden Filter für listRoots dazu gefunden und weiss langsam nicht mehr weiter. Kann mir da einer helfen?
 
Wo ist das Problem einmal zumindest mit Google zu suchen?

Ergibt sofort folgendes Ergebnis:
Erkennen von Wechselmedien

Der Code direkt:
Java:
import java.io.*;

public class Folder {

  public static void main(String[] args) {

    File file[] = File.listRoots();
    for (int i=0; i < file.length; i++) {

      try {
        sun.awt.shell.ShellFolder sf = sun.awt.shell.ShellFolder.getShellFolder(file[i]);
        System.out.println(file[i]+" "+sf.getFolderType());
      } catch (FileNotFoundException e) {
        System.out.println(file[i]+" Datenträger nicht eingelegt"); }
      }
   }
}
 
Ich habe gesucht... nur das er bei mir mehr Newsseiten als Infoseiten angezeigt hat... aber ich danke für die schnelle Hilfe... gucke das nächste mal gründlicher.
 
Bevor ich noch mehr Haue kriege ;) hier ne schönere Lösung:
Java:
FileSystemView fsv = FileSystemView.getFileSystemView();
File files[] = File.listRoots();
for(File file : files){
	System.out.println(file.toString( ) + " " + fsv.getSystemTypeDescription(file));
}
 
Ist es jetzt aber nicht so, das wenn z.B. keine Speicherkarte in das Kartenlesegerät eingelegt ist, er garnichts anzeigt?
 
Hmm? Nen Kartenleser existiert doch immer, und dieser wird in dem Fall auch als solcher angezeigt. Oder was meinst du?

Probier doch die Codestücke einfach mal mit Karte und ohne aus und sieh was passiert.
 
Habe ich ja. Ist keine Karte drinne, schreibt er nicht Wechseldatenträger. Ist eine drinne, dann schreibt er es. Es war jetzt eher als Frage formuliert, da ich dachte, das ich etwas falsch gemacht habe :rolleyes:
 
Überlegs dir mal so: Der Card-Reader an sich ist nur ein einfaches Laufwerk. Die Karte die dann reingesteckt wird ist dann der Wechseldatenträger. Von daher ist das schon richtig was angezeigt wird.

Kannst ja mal testen ob dir die anderen Methoden des FileSystemView bessere Ergebnisse liefern. Hatte es gestern nur mit USB Stick aber nicht mit Karten probiert :)
 
Das gute ist, das z.B. der Kartenleser oder auch das Diskettenlaufwerk über getSystemDisplayName keinen Namen ausgibt. Demnach könnte man erst alle Namenlosen ermitteln und dann noch nach Wechseldatenträgern suchen.
Btw.. wie frage ich das per if ab? Mit sf.getFolderType() == "Wechseldatenträger" gehts irgentwie nicht :)
 
Zurück