Class Files , Methode .delete()

Laurenz G

Mitglied
Liebe Java gemeinde,

Da ich zurzeit einen Sommerjob in einer IT Firma mache, und einen Auftrag bekommen habe ein Java Programm zu schreiben das, Leere Ordner ''findet'' und sie dann löscht. Habe ich dazu ein Programm geschrieben und habe 2 Fragen an euch.


Ich habe das Programm getestet es, es funktioniert , habe die Methode .delete() verwendet. Allerdings habe ich dann aus reiner Neugier den Pfad meines Java Programm ordners angegeben, sprich wo sich alle Programmcodes befinden .
Ja wie der Teufel will , wurden alle Gelöscht , wobei eigentlich die Methode delete() , nur Ordner löscht die LEER sind.
Woran lag das? Es ist das Problem das bei meiner Firma wichtige Kundendaten vorhanden sind , wenn die gelöscht werden ,könnte ich mir das nicht verzeihen.

2)
Mein Programm funktioniert mit einer Pfad eingabe. Da meine Kollegen keine Programmierer sind, haben sie ein Programm das nach beliebiger Zeit ein Programm ausführt. Und somit wird zb. alle 10 min mein Programm aufgerufen und löscht alle Leeren Ordner.
Nur meine Frage, da mein Programm mit einer Pfadeingabe funktioniert, und meine Kollegen nicht jede 10 Minuten einen Pfad eingeben wollen, habe ich vor eine .txt Datei zu erstellen , wo sie den Pfad eingeben sollen , und ich schreibe das Programm so das es nachdem es aufgerufen wird den nächst möglichen Pfad aufruft.

Was meint ihr? Ist das ein guter Lösungsweg?

Würde mich um eure Hilfe freuen
Bei Bedarf lade ich euch den Programmcode hoch :)
Gruß Laurenz
 

FArt

Top Contributor
Auch wenn es nur ein "kleines" Projekt ist: mit gelöschten Dateien kannst du dir viele Freunde machen.
Du solltest die korrekte Funktionalität über JUnit sicherstellen.

Konfigurationen in Java werden gerne über Properties-Dateien geregelt.

Beides kannst du mal googeln, es gibt auch Tutorials zu den Themen...
 

Laurenz G

Mitglied
[Java]



public class AtoS_Files
{
public static void main (String[]args) throws IOException {

String pfad= showInputDialog("Geben sie hier den Pfad ein wo Leere Ordner gelöscht werden solln"); //Pfad
File k = new File (pfad); //Objekterzeugung


String[]txt=k.list(); //Liste mit den vorhanden Datein und Ordner
for(int u=0; u<txt.length;u++){
File ordner= new File(k,txt);
ordner.delete(); //Löscht leere Ordner
}

}
}
[/Java]
 
M

Marcinek

Gast
Ich sehe hier keine Unterscheidung zwischen Datei und Ordner.

Er löscht einfach den Inhalt eines Ordners ;D
 

freez

Top Contributor
Da stellt sich auch die Frage was mit versteckten Datein passiert.

*ProbierenGehtÜberStudieren*
Wenn du es nicht nachlesen möchtest, probiere es doch einfach an einem Testordner aus.

Jedoch nur ein andere Lösungsweg
Ein anderer? Da deine Lösung nicht funktioniert, ist dies wohl die einzigste Lösung hier in dem Thread. Ich persönlich würde auch lieber diese Prüfungen vorher durchführen, bevor ich ein "delete" ausführe ... grad wenn es auch um heikle Daten geht, die erhalten bleiben sollen.
 
Zuletzt bearbeitet:

Laurenz G

Mitglied
*ProbierenGehtÜberStudieren*
Wenn du es nicht nachlesen möchtest, probiere es doch einfach an einem Testordner aus.

Ein anderer? Da deine Lösung nicht funktioniert, ist dies wohl die einzigste Lösung hier in dem Thread. Ich persönlich würde auch lieber diese Prüfungen vorher durchführen, bevor ich ein "delete" ausführe ... grad wenn es auch um heikle Daten geht, die erhalten bleiben sollen.

Ich lese immer nach , bevor ich sowas äußere , Nur steht das leider nicht in der API nicht dabei , falls du selber nachlesen möchtest:
File (Java Platform SE 7 ))
Und ja das mit den Testordner werd ich machen


Das meine Lösung nicht funktioniert stimmt auch nicht ganz, ich habe euch gefragt woran das Liegt das es gelöscht worden ist. Da die klasse .delete() nur Leere Ordner löscht hat mich das sehr gewundert!

Aber ich bin dankbar für den anderen Lösungsweg, falls keiner mir meine Frage beantworten kann
 
G

Gast2

Gast
Ja delete() löscht leere Ordner, das stimmt soweit, aber auch Dateien.

Du iterierst allerdings über den kompletten Inhalt eines Ordners. Also auch über die Dateien darin, die löschst du dann einfach weg. Deine Aufgabe war es doch nur "Order" zu löschen, das musst du abfragen.
 

faetzminator

Gesperrter Benutzer
Guter Idee, Jedoch nur ein andere Lösungsweg.
Ahja. Im Gegensatz zu deinem Code wiederspiegelt es die Anforderungen.
Da stellt sich auch die Frage was mit versteckten Datein passiert.
Ist denn eine versteckte Datei keine Datei? Kann diese kein Ordner und leer sein?* Im Sinne von [c]java.io.File[/c]

Ich will mal nicht so sein, so würd ich das implementieren:
[Java]public void removeEmptyFolders(File parent) {
if (parent.isDirectory()) {
File[] children = parent.listFiles();
if (children.length == 0) {
parent.delete();
} else {
for (File f : children) {
removeEmptyFolders(f);
}
}
}
}[/code]
Oder - noch besser - iterativ statt rekursiv:
Java:
public void removeEmptyFolders(File parent) {
    Queue<File> queue = new LinkedList<File>();
    queue.add(parent);
    while (!queue.isEmpty()) {
        File file = queue.poll();
        if (file.isDirectory()) {
            List<File> children = Arrays.asList(file.listFiles());
            if (children.isEmpty()) {
                file.delete();
            } else {
                queue.addAll(children);
            }
        }
    }
}
 

Laurenz G

Mitglied
Danke! :)
Hättest du noch eine Idee zu meiner 2ten Frage, wobei ich mit der Antwort von Properties Datein eh schon recht zufrieden war (-:
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
M *.class Files ausführen Allgemeine Java-Themen 2
T Class-files zur Laufzeit zu Reflection-Zwecken laden Allgemeine Java-Themen 18
A Versionierung von Class-Files Allgemeine Java-Themen 10
G Probleme mit Class Files Allgemeine Java-Themen 16
G class files zu java files Allgemeine Java-Themen 3
D NoClassDefFoundError: Could not initialize class Allgemeine Java-Themen 0
J Class to link Java Allgemeine Java-Themen 4
C Was passt hier nicht bei der Calendar-Class Allgemeine Java-Themen 2
E Class.getResourceAsStream() gibt null zurück Allgemeine Java-Themen 2
Erwin82a Object cannot be converted to Custom Class in Lampda Expression Allgemeine Java-Themen 2
T Java Robot Class - Bot Allgemeine Java-Themen 3
S Class File Editor -> Source not found Allgemeine Java-Themen 4
G javafx "class path" exception Allgemeine Java-Themen 5
S Java class direved from inner class Allgemeine Java-Themen 6
S Inner Class Allgemeine Java-Themen 11
K Wildcard und class type Allgemeine Java-Themen 9
M Java model class ? Allgemeine Java-Themen 9
Thallius Ist meine static Helper Class Thread save? Allgemeine Java-Themen 9
S class path resource [config.properties}] cannot be opened because it does not exist Allgemeine Java-Themen 4
J Reflection Aufruf: .class durch .dll ersetzen Allgemeine Java-Themen 4
T Compiler-Fehler NoClassDefFoundError beim Laden einer Class Allgemeine Java-Themen 11
J Class Decompile als String (Procyon) Allgemeine Java-Themen 2
H Class 'java.io.BuferedReader' is not present in JRE Emulation Libary | GWT Fehler?! Allgemeine Java-Themen 0
I Datentypen String in class sicher verwahren Allgemeine Java-Themen 17
R Dynimc Class Loading Allgemeine Java-Themen 5
J Inner class + Leer-Konstruktor Allgemeine Java-Themen 1
Neumi5694 Methoden Generic: Rückgabetyp als Class-Parameter übergeben Allgemeine Java-Themen 3
D Collections.sort funktioniert nicht in exportierten .class Dateien Allgemeine Java-Themen 10
V Eclipse .class Dateien Allgemeine Java-Themen 9
KeexZDeveoper Von .class zu .java Allgemeine Java-Themen 7
N Wo ist Object.class ? Allgemeine Java-Themen 0
K Nicht alle class-Dateien im JRE? Allgemeine Java-Themen 2
L Klassen Nested Class In Nested Class Allgemeine Java-Themen 3
perlenfischer1984 Dialect class not found exception Allgemeine Java-Themen 15
Tort-E Manifest Main-Class Allgemeine Java-Themen 8
I JSoup Class auslesen Allgemeine Java-Themen 1
K Generic class und Reflection Allgemeine Java-Themen 2
R .class Datei in .jar austauschen Allgemeine Java-Themen 2
R Java .class-File-Konstrunkt mit Programm visualisieren Allgemeine Java-Themen 18
A main-class Not found Allgemeine Java-Themen 3
T Java Class Intrumentation mit Annotations in Laufzeit Allgemeine Java-Themen 1
N Per Reflection auf (method) local inner class zugreifen? Allgemeine Java-Themen 3
P JDK installieren Error: Could not find or load main class HelloWorld.java Allgemeine Java-Themen 3
B public class JarFilter extends FileFilter « Falsch? Allgemeine Java-Themen 4
D Object nach Vererbung mit Class Object überprüfen Allgemeine Java-Themen 4
T Hash von *.class-Datein überprüfen Allgemeine Java-Themen 1
F java.lang.ClassNotFoundException: .class Allgemeine Java-Themen 5
T InvalidClassException - Read null attempting to read class descriptor for object Allgemeine Java-Themen 8
Phash Can't find Main Class Allgemeine Java-Themen 4
B Erste Schritte Plugin erkennen und Class Dateien anzeigen lassen Allgemeine Java-Themen 3
B json zu java class Allgemeine Java-Themen 2
antonbracke Aus Jar eine Class laden und damit arbeiten! Allgemeine Java-Themen 5
D Class<CAP#1> statt Class<...> Allgemeine Java-Themen 5
T Class-Objekt mit URLClassloader Allgemeine Java-Themen 7
A Class Datei aus Verzeichnis über URLClassLoader laden Allgemeine Java-Themen 2
E NetBeans warning: [options] bootstrap class path not set in conjunction with -source 1.6 Allgemeine Java-Themen 4
X Could not find the main class programm will exit (textdokument) Allgemeine Java-Themen 3
S Could not find the main class Allgemeine Java-Themen 7
B Mal wieder "Could not find the main class" Allgemeine Java-Themen 3
B Variable class in java.lang.Object Allgemeine Java-Themen 11
C Could not find the main class. Allgemeine Java-Themen 15
S Klassen .jar - eine .class datei ändern? Allgemeine Java-Themen 23
A Could not find main class: start Allgemeine Java-Themen 5
S main() class finden Allgemeine Java-Themen 7
hdi Could not find main class? Allgemeine Java-Themen 8
R Warum Class.forName(); Allgemeine Java-Themen 7
C class.class angefordert ? Allgemeine Java-Themen 2
S Methoden Class.forName() >> Methoden - Reihenfolge Allgemeine Java-Themen 5
B Test$1.class mit dem javac compiler Allgemeine Java-Themen 7
G jar Datei findet Main Class nicht... Allgemeine Java-Themen 2
P Java Editor Could not find the main class GUI. Programm will exit. Allgemeine Java-Themen 3
D class Datei einlesen Allgemeine Java-Themen 4
T Interface > Abstract > Class Allgemeine Java-Themen 11
TheDarkRose Subversion .class Dateien auch commiten? Allgemeine Java-Themen 3
D API - Beispiel + static member in inner (non static) class Allgemeine Java-Themen 2
E String name in class convertieren Allgemeine Java-Themen 4
F Änderung in .jar bzw. .class vornehmen ? Allgemeine Java-Themen 18
H2SO3- bestimmte class immer mit 1.4 compilieren Allgemeine Java-Themen 5
B class dateien "einlesen" und objekte erzeugen Allgemeine Java-Themen 6
G Unterschied MyClass.class vs this Allgemeine Java-Themen 2
S mit Class eine Klasse nur einmal instantiieren Allgemeine Java-Themen 4
Sonecc Zugriff auf Class File einer anderen Jar während der Laufzeit Allgemeine Java-Themen 2
M Klasse aus xyz.class Datei laden / package entfernen? Allgemeine Java-Themen 4
BattleMaster246 Could not find the Main class Allgemeine Java-Themen 30
N class Task extends TimerTask ohne Blockieren Allgemeine Java-Themen 15
H .class in .java umwandeln Allgemeine Java-Themen 3
T class.newinstance + try/catch-konstruktor Allgemeine Java-Themen 6
X Cannot refer to a non-final variable settings inside an inner class defined in a different method Allgemeine Java-Themen 4
J Class.forName und CLASSPATH -Problem Allgemeine Java-Themen 5
G Thread in Methode oder in inner class Allgemeine Java-Themen 3
woezelmann referenz der outer class aus static nested class heraus Allgemeine Java-Themen 7
reibi Main-Class in Jarfile Allgemeine Java-Themen 3
E Timer class macht einfach garnichts :/ Allgemeine Java-Themen 6
D Class.forName Allgemeine Java-Themen 2
S Class RGB Farbe Allgemeine Java-Themen 2
S JavaDoc aus .class Datei extrahieren Allgemeine Java-Themen 5
mongole Class.class.getResource(...) Allgemeine Java-Themen 10
N Probleme mit .jar 'Could not find main class' Allgemeine Java-Themen 3
T Class Not Found Exception beim import von Paket Allgemeine Java-Themen 2
G Abstract class Stillfrage Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben