Hiho Community!
Ich bin neu hier und hoffe gleich zu Anfang das ich meinen Thread in den richtigen Unterordner poste!
Ich probiere momentan das Auslesen der Verzeichnisstruktur aus und bin da auf ein kleines Problem gestoßen.
Das Programm das ich geschrieben habe, soll mir nur ermöglichen durch die Struktur vorwärts und rückwärts zu navigieren (unter Windows). Macht es soweit auch super! Mein Problem ist, das wenn ich während des laufenden Programmes c:\programme auswähle, dass ich dort kein Unterordner/Files angezeigt bekomme! Aber ich frage mich warum!? ^^
Hier der Code:
Tree:
Laufwerk: (wird für jeden ausgewählten Ordner hergenommen)
Unterordner
File
Ich bin neu hier und hoffe gleich zu Anfang das ich meinen Thread in den richtigen Unterordner poste!

Ich probiere momentan das Auslesen der Verzeichnisstruktur aus und bin da auf ein kleines Problem gestoßen.
Das Programm das ich geschrieben habe, soll mir nur ermöglichen durch die Struktur vorwärts und rückwärts zu navigieren (unter Windows). Macht es soweit auch super! Mein Problem ist, das wenn ich während des laufenden Programmes c:\programme auswähle, dass ich dort kein Unterordner/Files angezeigt bekomme! Aber ich frage mich warum!? ^^
Hier der Code:
Tree:
Code:
package verzeichnisse;
import java.io.File;
import java.util.*;
import javax.swing.table.*;
/**
*
* @author pepito84
*/
public class Tree extends javax.swing.JFrame {
Vector rootDirectories;
Vector rootFiles;
String[] initDrive = {"c:/", "d:/", "e:/","f:/","g:/","h:/","i:/","j:/","k:/","l:/","m:/","n:/","o:/","p:/","q:/","r:/","s:/","t:/","u:/","v:/","w:/","x:/","y:/","z:/"};
String dr = "c:/";
String path;
Laufwerk l;
int geladen = 0;
File drive;
String buffer;
int driveTest = 0;
/** Creates new form Tree */
public Tree() {
initComponents();
init();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jScrollPane1 = new javax.swing.JScrollPane();
tblTree = new javax.swing.JTable();
cboDrive = new javax.swing.JComboBox();
jScrollPane2 = new javax.swing.JScrollPane();
tblFile = new javax.swing.JTable();
cmdRoot = new javax.swing.JButton();
cmdBack = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
tblTree.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Nr", "Ordner"
}
) {
boolean[] canEdit = new boolean [] {
false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
tblTree.setCellSelectionEnabled(false);
tblTree.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tblTreeMouseClicked(evt);
}
});
jScrollPane1.setViewportView(tblTree);
tblTree.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
cboDrive.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
cboDriveItemStateChanged(evt);
}
});
tblFile.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Dateien"
}
) {
boolean[] canEdit = new boolean [] {
false
};
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
tblFile.setColumnSelectionAllowed(true);
tblFile.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
tblFileMouseClicked(evt);
}
});
jScrollPane2.setViewportView(tblFile);
tblFile.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
cmdRoot.setText("root");
cmdRoot.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmdRootActionPerformed(evt);
}
});
cmdBack.setText("zurück");
cmdBack.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmdBackActionPerformed(evt);
}
});
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(4, 4, 4)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 225, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 454, Short.MAX_VALUE))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(cboDrive, javax.swing.GroupLayout.PREFERRED_SIZE, 46, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(cmdRoot)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(cmdBack)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(cboDrive, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmdRoot)
.addComponent(cmdBack))
.addGap(20, 20, 20)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jScrollPane2)
.addComponent(jScrollPane1)))
);
pack();
}// </editor-fold>
private void cboDriveItemStateChanged(java.awt.event.ItemEvent evt) {
if( geladen!= 0){
geladen=0;
dr = String.valueOf(cboDrive.getSelectedItem());
init();
}
}
private void tblTreeMouseClicked(java.awt.event.MouseEvent evt) {
int pos = tblTree.getSelectedRow();
Unterordner u = (Unterordner) rootDirectories.elementAt(pos);
dr = u.getPath()+"\\";
geladen = 0;
init();
}
private void tblFileMouseClicked(java.awt.event.MouseEvent evt) {
int pos = tblFile.getSelectedRow();
ContainedFiles fi = (ContainedFiles) rootFiles.elementAt(pos);
path = fi.getPath();
fi.execFile(path);
}
private void cmdRootActionPerformed(java.awt.event.ActionEvent evt) {
dr = cboDrive.getSelectedItem().toString();
geladen = 0;
init();
}
private void cmdBackActionPerformed(java.awt.event.ActionEvent evt) {
try{
dr = drive.getParentFile().toString();
}catch(Exception e){
}
geladen = 0;
init();
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Tree().setVisible(true);
}
});
}
public void init(){
( (DefaultTableModel) tblTree.getModel() ).setNumRows(0);
( (DefaultTableModel) tblFile.getModel() ).setNumRows(0);
if(cboDrive.getItemCount() == 0)
initDrives();
cboDrive.setSelectedItem(dr);
drive = new File(dr);
l = new Laufwerk(drive);
try{
fillTree();
}catch(Exception e){
System.out.println(e);
}
geladen=1;
}
public void initDrives(){
for( int i = 0; i < initDrive.length; i++){
File testDrive = new File(initDrive[i]);
if( testDrive.exists() )
cboDrive.addItem(testDrive.getAbsolutePath());
}
}
public void fillTree(){
rootDirectories = l.getOrdner();
rootFiles = l.getFile();
for(int i = 0; i < rootDirectories.size(); i++){
Unterordner u = (Unterordner) rootDirectories.elementAt(i);
buffer = u.getName();
Object Row[] = { i+1 , buffer};
( (DefaultTableModel) tblTree.getModel() ).addRow(Row);
}
for(int i = 0; i < rootFiles.size(); i++){
ContainedFiles fi = (ContainedFiles) rootFiles.elementAt(i);
buffer = fi.getName();
Object Row[] = { buffer};
( (DefaultTableModel) tblFile.getModel() ).addRow(Row);
}
}
// Variables declaration - do not modify
private javax.swing.JComboBox cboDrive;
private javax.swing.JButton cmdBack;
private javax.swing.JButton cmdRoot;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTable tblFile;
private javax.swing.JTable tblTree;
// End of variables declaration
}
Code:
package verzeichnisse;
import java.io.File;
import java.util.Vector;
/**
*
* @author pepito84
*/
public class Laufwerk {
String[] inhalt;
Vector Ordner = new Vector();
Vector File = new Vector();
File laufwerk;
public Laufwerk(File pDrive){
laufwerk = pDrive;
this.ladeStruktur(laufwerk);
}
public void ladeStruktur(File pLaufwerk){
inhalt = pLaufwerk.list();
try{
for(int i = 0; i<inhalt.length;i++){
File f = new File(""+laufwerk.getAbsolutePath()+"/"+inhalt[i]+"/");
String root = laufwerk.getPath();
String path = f.getAbsolutePath();
if( inhalt[i].contains(".") ){
ContainedFiles cf= new ContainedFiles(f.getName(),path);
einordnenFile(cf);
}else{
Unterordner o = new Unterordner(f.getName(),path);
einordnenDir(o);
}
}
}catch(Exception e){
}
}
public Vector getOrdner(){
return Ordner;
}
public Vector getFile(){
return File;
}
public void einordnenFile(ContainedFiles pCf) {
File.addElement(pCf);
}
public void einordnenDir(Unterordner pOrdner) {
Ordner.addElement(pOrdner);
}
public void toStringOrdner(Laufwerk pLauf){
}
public void toStringFile(Laufwerk pLauf){
}
}
Code:
package verzeichnisse;
/**
*
* @author pepito84
*/
public class Unterordner{
String Name;
String Path;
public Unterordner(String Name,String Path){
this.Name = Name;
this.Path = Path;
}
public String getName(){
return this.Name;
}
public String getPath(){
return this.Path;
}
}
Code:
package verzeichnisse;
import java.io.IOException;
/**
*
* @author pepito84
*/
public class ContainedFiles {
String Name;
String Path;
public ContainedFiles(String Name,String Path){
this.Name = Name;
this.Path = Path;
}
public String getName(){
return this.Name;
}
public String getPath(){
return this.Path;
}
public void execFile(String path){
try {
new ProcessBuilder( "cmd", "/c", path ).start();
} catch (IOException e) {
e.printStackTrace();}
}
}
Zuletzt bearbeitet: