Hallo zusammen,
ich habe ein Problem mit dem Zugriff auf die Wechsellaufwerke.
Es werden mit Hilfe der Klasse TreNode Dateisysteme angeschafft und mit JTree dann dargestellt.
Leider kann ich aber nur auf die Festplatten zugreifen, nicht aber auf die Wechsellaufwerke, obwohl diese mitangezeigt werden.
Wo liegt das Problem?
ich habe ein Problem mit dem Zugriff auf die Wechsellaufwerke.
Es werden mit Hilfe der Klasse TreNode Dateisysteme angeschafft und mit JTree dann dargestellt.
Leider kann ich aber nur auf die Festplatten zugreifen, nicht aber auf die Wechsellaufwerke, obwohl diese mitangezeigt werden.
Wo liegt das Problem?
Code:
import javax.swing.*;
import javax.swing.tree.*;
import java.io.*;
import java.awt.*;
public class Dateibaum extends JFrame
{
static final int MAXTIEFE = 5;
File file;
public Dateibaum()
{
super ("Dateibaum");
// Dateisysteme bestimmen
File[] dirs = File.listRoots();
DefaultMutableTreeNode node, root = new DefaultMutableTreeNode("Arbeitsplatz");
// Erstes Dateisystem rekursiv durchlaufen und hierarchische Struktur aufbauen
for(int i = 0; i < dirs.length; i++)
{
file = dirs[i];
node = new DefaultMutableTreeNode(file.getPath());
root.add(node);
traverse(file, node, MAXTIEFE);
}
getContentPane().setLayout(new FlowLayout());
getContentPane().add(new JTree(root));
pack();
setVisible(true);
}
static void traverse(File dir, DefaultMutableTreeNode parent, int tiefe)
{
if (dir.isDirectory() && tiefe > 0) {
// Liste der Einträge erstellen
File[] entries = dir.listFiles();
if (entries != null)
{
DefaultMutableTreeNode node;
// Liste durchlaufen, wenn Verzeichnis rekursiver Durchlauf
for (int i = 1; i < entries.length; ++i) {
node = new DefaultMutableTreeNode(entries[i].getName());
parent.add(node);
if (entries[i].isDirectory())
traverse(entries[i], node, tiefe-1);
}
}
}
}
public static void main(String[] args)
{
new Dateibaum();
}
}