Hey ich und ein Kumpel haben probleme bei diesem code hier das programm soll die dateien in einem verzeichniss samt unterordner anzeigen und in html, pdf etc. sortieren und ausgeben. das funktioniert auch sehr gut jedoch wen ich größere verzeichnisse durchsuchen möchte wie z.b /users/ kommt ein fehler weiß jemand woran das liegt. ich tippe daarauf das alles nicht in eine variable passt oder so für hilfe wäre ich sehr dankbar
//erste klasse
import java.io.*;
public class Verzeichnissdurchsuchen
{
static String weitereAnweisung;
static String HierbinIch;
static void traverse(File dir, Verzeichnissbesucher visitor)
{
if (!dir.isDirectory()) {
throw new IllegalArgumentException(
"kein Verzeichniss: " + dir.getName()
);
}
visitor.betreteVerzeichniss(dir);
File[] eing = dir.listFiles();
new FileFilter()
{
public boolean accept(File pathname)
{
return true;
}
};
for (int i = 0; i < eing.length; ++i) {
if (eing.isDirectory()) {
traverse(eing, visitor);
} else {
visitor.besucheDatei(eing);
}
}
visitor.verlasseVerzeichniss(dir);
}
public static void main(String[] args) throws IOException
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.println("Geben sie hier ein, welches Verzeichniss untersucht werden soll: ");
HierbinIch = br.readLine();
File file = new File(HierbinIch);
System.out.println("Dateiauflistung für das Verzeichniss " +HierbinIch);
traverse(file, new DPV()); //ermittelt die Größe der Datei oder des Verzeichnisses ganz
VGVisitor visitor = new VGVisitor();
traverse(file, visitor);
/*mit getter und setter werden die integer aus DPV aufgerufen (txt pdf jpg*/
DPV geil = new DPV();
System.out.println("Zusammfassung aller Dateien: ");
System.out.println("--------------------------------------");
System.out.println("Verzeichnisse: " + visitor.hollVerzeichnisse());
System.out.println("Dateien: " + visitor.hollDateien());
System.out.println("Größte Datei in Bytes"+" "+ visitor.hollGröße());
System.out.println("Duschnittsröße: "+(visitor.hollGröße()/visitor.hollDateien()));
System.out.println("docx:" +geil.getDocx());
System.out.println("pdf:"+geil.getPdf());
System.out.println("txt:"+geil.getTxt());
System.out.println("jpg:" +geil.getJpg());
System.out.println("--------------------------------------");
}
}
//zweite klasse
import java.io.*;
public class DPV
implements Verzeichnissbesucher
{
String x;
String ident = "";
static int pdf =0;
static int txt =0;
static int docx =0;
static int jpg = 0;
public void betreteVerzeichniss(File dir)
{
System.out.println(ident + "[" + dir.getName() + "]");
ident += " "; // += <-- addiert einen wert zu angegeben variable
}
public void verlasseVerzeichniss(File dir)
{
ident = ident.substring(2);
}
/* mach dieses wie in der anderen aufzählung weiter, versuch müsste klappen was ist "datei?"*/
public void besucheDatei(File datei )
{
x = ident+datei;
if (x.endsWith(".pdf")){
++pdf;
}
if (x.endsWith(".txt")){
++txt;
}
if (x.endsWith(".docx")){
++docx;
}
if (x.endsWith(".jpg"))
{
++jpg;
}
// System.out.println(ident + datei.getName()); // <-- ist zum anzeigen aller dateien wichtig
}
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
public int getJpg() {
return jpg;
}
public void setJpg(int jpg) {
DPV.jpg = jpg;
}
public int getDocx() {
return docx;
}
public void setDocx(int docx) {
DPV.docx = docx;
}
public int getTxt() {
return txt;
}
public void setTxt(int txt) {
DPV.txt = txt;
}
public int getPdf() {
return pdf;
}
public void setPdf(int pdf) {
DPV.pdf = pdf;
}
}
//dritte klasse
import java.io.*;
public class VGVisitor
implements Verzeichnissbesucher
{
int dateien = 0;
int verz = 0;
long größe = 0;
int pdf = 0;
String offen =" ";
public void betreteVerzeichniss(File dir)
{
++verz;
}
public void verlasseVerzeichniss(File dir)
{
}
public void besucheDatei(File Datei)
{
++dateien;
größe += Datei.length();
}
public int hollVerzeichnisse()
{
return verz;
}
public int hollDateien()
{
return dateien;
}
public long hollGröße()
{
return größe;
}
public int hollpdfanzahl(){
return pdf;
}
}
// vierte klasse
import java.io.*;
public interface Verzeichnissbesucher
{
public void betreteVerzeichniss(File dir);
public void verlasseVerzeichniss(File dir);
public void besucheDatei(File Datei);
}
//erste klasse
import java.io.*;
public class Verzeichnissdurchsuchen
{
static String weitereAnweisung;
static String HierbinIch;
static void traverse(File dir, Verzeichnissbesucher visitor)
{
if (!dir.isDirectory()) {
throw new IllegalArgumentException(
"kein Verzeichniss: " + dir.getName()
);
}
visitor.betreteVerzeichniss(dir);
File[] eing = dir.listFiles();
new FileFilter()
{
public boolean accept(File pathname)
{
return true;
}
};
for (int i = 0; i < eing.length; ++i) {
if (eing.isDirectory()) {
traverse(eing, visitor);
} else {
visitor.besucheDatei(eing);
}
}
visitor.verlasseVerzeichniss(dir);
}
public static void main(String[] args) throws IOException
{
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
System.out.println("Geben sie hier ein, welches Verzeichniss untersucht werden soll: ");
HierbinIch = br.readLine();
File file = new File(HierbinIch);
System.out.println("Dateiauflistung für das Verzeichniss " +HierbinIch);
traverse(file, new DPV()); //ermittelt die Größe der Datei oder des Verzeichnisses ganz
VGVisitor visitor = new VGVisitor();
traverse(file, visitor);
/*mit getter und setter werden die integer aus DPV aufgerufen (txt pdf jpg*/
DPV geil = new DPV();
System.out.println("Zusammfassung aller Dateien: ");
System.out.println("--------------------------------------");
System.out.println("Verzeichnisse: " + visitor.hollVerzeichnisse());
System.out.println("Dateien: " + visitor.hollDateien());
System.out.println("Größte Datei in Bytes"+" "+ visitor.hollGröße());
System.out.println("Duschnittsröße: "+(visitor.hollGröße()/visitor.hollDateien()));
System.out.println("docx:" +geil.getDocx());
System.out.println("pdf:"+geil.getPdf());
System.out.println("txt:"+geil.getTxt());
System.out.println("jpg:" +geil.getJpg());
System.out.println("--------------------------------------");
}
}
//zweite klasse
import java.io.*;
public class DPV
implements Verzeichnissbesucher
{
String x;
String ident = "";
static int pdf =0;
static int txt =0;
static int docx =0;
static int jpg = 0;
public void betreteVerzeichniss(File dir)
{
System.out.println(ident + "[" + dir.getName() + "]");
ident += " "; // += <-- addiert einen wert zu angegeben variable
}
public void verlasseVerzeichniss(File dir)
{
ident = ident.substring(2);
}
/* mach dieses wie in der anderen aufzählung weiter, versuch müsste klappen was ist "datei?"*/
public void besucheDatei(File datei )
{
x = ident+datei;
if (x.endsWith(".pdf")){
++pdf;
}
if (x.endsWith(".txt")){
++txt;
}
if (x.endsWith(".docx")){
++docx;
}
if (x.endsWith(".jpg"))
{
++jpg;
}
// System.out.println(ident + datei.getName()); // <-- ist zum anzeigen aller dateien wichtig
}
public String getX() {
return x;
}
public void setX(String x) {
this.x = x;
}
public int getJpg() {
return jpg;
}
public void setJpg(int jpg) {
DPV.jpg = jpg;
}
public int getDocx() {
return docx;
}
public void setDocx(int docx) {
DPV.docx = docx;
}
public int getTxt() {
return txt;
}
public void setTxt(int txt) {
DPV.txt = txt;
}
public int getPdf() {
return pdf;
}
public void setPdf(int pdf) {
DPV.pdf = pdf;
}
}
//dritte klasse
import java.io.*;
public class VGVisitor
implements Verzeichnissbesucher
{
int dateien = 0;
int verz = 0;
long größe = 0;
int pdf = 0;
String offen =" ";
public void betreteVerzeichniss(File dir)
{
++verz;
}
public void verlasseVerzeichniss(File dir)
{
}
public void besucheDatei(File Datei)
{
++dateien;
größe += Datei.length();
}
public int hollVerzeichnisse()
{
return verz;
}
public int hollDateien()
{
return dateien;
}
public long hollGröße()
{
return größe;
}
public int hollpdfanzahl(){
return pdf;
}
}
// vierte klasse
import java.io.*;
public interface Verzeichnissbesucher
{
public void betreteVerzeichniss(File dir);
public void verlasseVerzeichniss(File dir);
public void besucheDatei(File Datei);
}