Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
DatentypenString in File konvertieren funktioniert nicht
Moin,
folgendes Problem. Am Anfang meines Programms frage ich durch User Eingabe einen Pfad ab und speichere diesen in einem String ab.
An dem Problem Punkt möchte ich die Dateien die in einem Unterordner sind zählen um damit weiterzuarbeiten. Dazu hab ich folgenden Code benutzt:
[CODE lang="java" highlight="1, 3"]File pathxxxfile = new File(PATHXXX); //den String in File konvertieren
File fileending = new File(".txt") ; //Variable für .list erstellen um Programm Fehler zu vermeiden
File amountsvg = pathxxxfile +"/xxx/" ; //String für den Pfad zum Unterverzeichnis erstellen
String [] list = amountxxx.list((FilenameFilter) fileending) ; //Dateien zählen
int amount = list.length; //int erstellen mit Gesamtanzahl Dateien
[/CODE]
Soweit so gut. Wenn ich jetzt keinen massiven Gedankenfehler habe, dann habe ich den String eigentlich mit der ersten Zeile in ein File konvertiert, Eclipse spukt mir aber bei der 3. Zeile "pathsvgfile +"/svg/"" den Fehler "Type mismatch: cannot convert from String to File" aus.
Die Zeile 3 String statt File zu nutzen ist aufgrund des .list ungüntig.
Die Eingabe des Pfades direkt als File einzuspeichern ist auch schlecht, da ich an anderen Stelle den Pfad als String benötige.
Also sehe ich aktuell 2 Möglichkeiten. Entweder den den Pfad als String und in einer temporären Datei zu speichern, den Pfad an der Stelle als aus der Datei auslesen und anschließend als File abzuspeichern. Wäre in meinen Augen aber viel zu umständlich und das konvertieren in File wäre defivinit die einfachere Möglichkeit.
Hat jemand zufällig ne Idee wo genau der Fehler liegt oder evtl eine passende anderweitige Lösung für das Problem?
Greetz JoeJoke
PS. Musste aufgrund von Interna einige stellen abändern, der Code ist aber der gleiche.
Und daraus ergibt sich, String kann man nicht einem File zuweisen. Du musst entweder ein neues File mit deinem zusammengehaengten Pfad erstellen. Oder besser waere wenn du die neue java.nio API verwendest.
Ergänzend zu dem, was @Robert Zenz schon gesagt hat, noch fogender Hinweis: File ist eine eigenartige Klasse: Sie ist ein Mittelding zwischen dem Dateinamen und dem Dateizugriff.
Aber es handelt sich nicht nur um den Dateinamen. Und damit kannst du auch keinen String anhängen.
Versteh ich das richtig, dass dies den Pfad zu einer bestimmten Datei ausliest? Dann ist das ehre uninteressant für mich. Zumindest für dieses Problem.
Mit
Java:
Path
muss ich mich erstmal genauer beschäftigen um damit abeiten zu können.
Erstmal werd ich jetzt mit ersterem arbeiten:
Java:
String pathxxx = PATHXXX +"/xxx/";
File pathxxxfile = new File(pathxxx);
String fileending1 = ".txt";
File fileending = new File(fileending1);
Allerdings hängt der Code nun bei
Java:
String [] list = amountxxx.list((FilenameFilter) fileending) ;
. Nach erzwungenen weiter gehen wird der Fehler
Java:
Exception in thread "main" java.lang.ClassCastException: class java.io.File cannot be cast to class java.io.FilenameFilter (java.io.File and java.io.FilenameFilter are in module java.base of loader 'bootstrap')
ausgespuckt. Weiß jemand, wo dort der Fehler liegen könnte?
Na weil einString kein FilenameFilters ist, du musst schon die entsprechende Klasse erstellen (casten ist keine Erstellung, casten ist das pressen in eine andere Form).