Hallo alle zusammen,
ich bin noch Anfänger beim Programmieren und habe einen NullPointerException Fehler, denn ich nicht verstehe.
Das Ziel des Programmes soll es sein, automatisch Filmtitel von einer Festplatte mit Filmtiteln auf 7 verschiedenen SD-Karten zu vergleichen.
Dafür habe ich 3 Klassen angelegt: Speicherkarten, Festplatte, Vergleiche
Innerhalb meiner main Methode in Vergleiche rufe ich die Funktion Filelist() in Klasse Speicherkarten auf und dort habe ich meinen Fehler laut Compiler in Zeile 36.
Leider weiß ich nicht warum.
Ich würde mich freuen, wenn mir jemand helfen könnte meinen Fehler zu finden.
Danke im Voraus,
Jan.
[CODE lang="java" title="Die Klasse Speicherkarte" highlight="36"]
import java.io.File;
import java.util.ArrayList;
import javax.swing.filechooser.FileSystemView;
public class Speicherkarten {
long GesammtGröße;
public ArrayList<Long> FilmFilesGrößen = new ArrayList<Long>();
public ArrayList<File> FilmFiles = new ArrayList<File>();
public File Ordner[];
public File SpeicherQuelle;
public String SDname;
public static Speicherkarten[] Karten;
public static void Filelist() {
File[] roots = File.listRoots();
ArrayList<File> rootsclean = new ArrayList<File>();
for (int i = 0; i < roots.length; i++) {
if (FileSystemView.getFileSystemView().getSystemDisplayName(roots).contains("filme_")) {
rootsclean.add(roots);
}
}
File[] Speichermedien = new File[rootsclean.size()];
SpeicherKartenLaengeDef(Speichermedien.length);
for (int i = 0; i < rootsclean.size(); i++) {
Speichermedien = rootsclean.get(i);
}
// bis hier klappt es
for (int i = 0; i < Speichermedien.length; i++) {
Karten.SDname = FileSystemView.getFileSystemView().getSystemDisplayName(Speichermedien); //Fehler laut Compiler
Karten.SpeicherQuelle = Speichermedien;
Karten.GesammtGröße = Karten.SpeicherQuelle.getTotalSpace();
Karten.Ordner = Karten.SpeicherQuelle.listFiles();
for (int u = 0; u < Karten.Ordner.length; u++) {
try {
File zwisch[] = Karten.Ordner.listFiles();
for (int r = 0; r < zwisch.length; r++) {
Karten.FilmFiles.add(zwisch[r]);
Karten.FilmFilesGrößen.add(zwisch[r].length());
}
} catch (NullPointerException e) {
// falls Genre-Ordner in Karte leer
}
}
}
for (int i = 0; i < Karten.length; i++) {
for (int u = 0; u < Karten.FilmFiles.size(); u++) {
if (Karten.FilmFilesGrößen.get(u) <= 10000) {
Karten.FilmFiles.remove(u);
Karten.FilmFilesGrößen.remove(u);
u--;
}
}
}
}
public static void SpeicherKartenLaengeDef(int laenge) {
Karten=new Speicherkarten[laenge];
}
}
[/CODE]
ich bin noch Anfänger beim Programmieren und habe einen NullPointerException Fehler, denn ich nicht verstehe.
Das Ziel des Programmes soll es sein, automatisch Filmtitel von einer Festplatte mit Filmtiteln auf 7 verschiedenen SD-Karten zu vergleichen.
Dafür habe ich 3 Klassen angelegt: Speicherkarten, Festplatte, Vergleiche
Innerhalb meiner main Methode in Vergleiche rufe ich die Funktion Filelist() in Klasse Speicherkarten auf und dort habe ich meinen Fehler laut Compiler in Zeile 36.
Leider weiß ich nicht warum.
Ich würde mich freuen, wenn mir jemand helfen könnte meinen Fehler zu finden.
Danke im Voraus,
Jan.
[CODE lang="java" title="Die Klasse Speicherkarte" highlight="36"]
import java.io.File;
import java.util.ArrayList;
import javax.swing.filechooser.FileSystemView;
public class Speicherkarten {
long GesammtGröße;
public ArrayList<Long> FilmFilesGrößen = new ArrayList<Long>();
public ArrayList<File> FilmFiles = new ArrayList<File>();
public File Ordner[];
public File SpeicherQuelle;
public String SDname;
public static Speicherkarten[] Karten;
public static void Filelist() {
File[] roots = File.listRoots();
ArrayList<File> rootsclean = new ArrayList<File>();
for (int i = 0; i < roots.length; i++) {
if (FileSystemView.getFileSystemView().getSystemDisplayName(roots).contains("filme_")) {
rootsclean.add(roots);
}
}
File[] Speichermedien = new File[rootsclean.size()];
SpeicherKartenLaengeDef(Speichermedien.length);
for (int i = 0; i < rootsclean.size(); i++) {
Speichermedien = rootsclean.get(i);
}
// bis hier klappt es
for (int i = 0; i < Speichermedien.length; i++) {
Karten.SDname = FileSystemView.getFileSystemView().getSystemDisplayName(Speichermedien); //Fehler laut Compiler
Karten.SpeicherQuelle = Speichermedien;
Karten.GesammtGröße = Karten.SpeicherQuelle.getTotalSpace();
Karten.Ordner = Karten.SpeicherQuelle.listFiles();
for (int u = 0; u < Karten.Ordner.length; u++) {
try {
File zwisch[] = Karten.Ordner.listFiles();
for (int r = 0; r < zwisch.length; r++) {
Karten.FilmFiles.add(zwisch[r]);
Karten.FilmFilesGrößen.add(zwisch[r].length());
}
} catch (NullPointerException e) {
// falls Genre-Ordner in Karte leer
}
}
}
for (int i = 0; i < Karten.length; i++) {
for (int u = 0; u < Karten.FilmFiles.size(); u++) {
if (Karten.FilmFilesGrößen.get(u) <= 10000) {
Karten.FilmFiles.remove(u);
Karten.FilmFilesGrößen.remove(u);
u--;
}
}
}
}
public static void SpeicherKartenLaengeDef(int laenge) {
Karten=new Speicherkarten[laenge];
}
}
[/CODE]