Autor Beitrag
bigbensnake
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 12.11.10 00:58 
Hallo,
bin hier neu im Forum.

Ich versuche es schon seit 2 Tagen

Ich möchte das mir ein Button auf (Klick) in einem bestimmten verzeichnis alle *.txt Dateien löscht.
Ich schaffe es allerdings nicht das er mir die Unterordner mit einbezieht.

mein Ansatz:

private void button1_Click(object sender, EventArgs e)
{
string searchpattern = "*.txt";
string home = System.Environment.GetEnvironmentVariable("homepath");
DirectoryInfo di = new DirectoryInfo(home);
DirectoryInfo[] directories = di.GetDirectories(searchpattern, SearchOption.AllDirectories);
FileInfo[] fileendung = di.GetFiles("*.txt");

for (int i = 0; i < fileendung.Length; i++)
fileendung[i].Delete();

Hoffe ich find hier Hilfe^^
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 12.11.10 07:01 
Hallo und :welcome:

Ich sehe nirgends, dass du etwas mit deiner directories Variablen machst. In die hast du aber deine Unterverzeichnisse gepackt. :gruebel:

Du kannst das ganze am einfachsten rekursiv angehen. Immer das aktuelle Verzeichnis bearbeiten, dann das selbe mit allen Unterverzeichnissen machen.
bigbensnake Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 12.11.10 14:52 
OK Danke erstmal für die schnelle Antwort.
Nur leider kann ich damit gar nix anfangen!

Ich bin der totale Anfänger.

Habe da mal was ausprobiert nur die unterverzeichnisse macht er mir trotzdem nicht mit.
Mein lösungsansatz:

string searchpattern = "*.txt";
string home = System.Environment.GetEnvironmentVariable("homepath");
DirectoryInfo di = new DirectoryInfo(home);
DirectoryInfo[] unterordner = di.GetDirectories(searchpattern, SearchOption.AllDirectories);
FileInfo[] fileendung = di.GetFiles("*.txt");

for (int i = 0; i < unterordner.Length; i++)
fileendung[i].Delete();

Nur Passiert hier absolut nichts.
Hat jemand vllt einen ahnung warum?
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Fr 12.11.10 15:12 
Hallo,

bisher durchsuchst du nur alle Verzeichnisse, welche "*.txt" entsprechen und nicht die Dateien.
Du mußt die Suchoption bei GetFiles angeben:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
DirectoryInfo di = new DirectoryInfo(home);
FileInfo[] files = di.GetFiles("*.txt", SearchOption.AllDirectories);

for (int i = 0; i < files.Length; i++)
    files[i].Delete();


Besser ist jedoch dieser Code: [Snippet] Verzeichnisse und Dateien rekursiv durchlaufen
(steht auch dabei, warum -)
bigbensnake Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 12.11.10 15:57 
Sehr geil es geht :beer:

nur habe ich jetzt gemerkt das er mir die unterverzeichnisse von den unterverzeichnissen nicht anrührt!

zum verständniss:
Von meinem Quellpfad die unterverzeichnisse werden mitgenommen,
aber die verzeichnisse in den unterverzeichnissen nicht?
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 12.11.10 17:21 
Wie ich schon erwähnt habe und user profile iconTh69 auch: Mach es rekursiv...