AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Nach Dateityp suchen und dann löschen

Ein Thema von Larsi · begonnen am 26. Mär 2008 · letzter Beitrag vom 18. Apr 2008
Antwort Antwort
Seite 1 von 2  1 2   
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#1

Nach Dateityp suchen und dann löschen

  Alt 26. Mär 2008, 08:53
Hi,
ich schaffe es so rekursiv nach Dateien zu suchen, jedoch möchte ich nicht, dass sie nur gesucht werden, sie sollen auch gleich gelöscht werden!
Delphi-Quellcode:
procedure GetFilesInDirectory(Directory: String; const Mask: String;
                              List: TStrings;
                              WithSubDirs, ClearList: Boolean);

procedure ScanDir(const Directory: String);
var
  SR: TSearchRec;
begin
  if FindFirst(Directory + Mask, faAnyFile and not faDirectory, SR) = 0 then try
    repeat
      List.Add(Directory + SR.Name)
    until FindNext(SR) <> 0;
  finally
    FindClose(SR);
  end;

  if WithSubDirs then begin
    if FindFirst(Directory + '*.*', faAnyFile, SR) = 0 then try
      repeat
        if ((SR.attr and faDirectory) = faDirectory) and
           (SR.Name <> '.') and (SR.Name <> '..') then
          ScanDir(Directory + SR.Name + '\');
      until FindNext(SR) <> 0;
    finally
      FindClose(SR);
    end;
  end;
end;

begin
  List.BeginUpdate;
  try
    if ClearList then
      List.Clear;
    if Directory = 'then Exit;
    if Directory[Length(Directory)] <> '\then
      Directory := Directory + '\';
    ScanDir(Directory);
  finally
    List.EndUpdate;
  end;
end;

Ich hoffe mir kann jemand daraus eine Abänderung machen, dass sie also die Prozedur gleich auch noch die Dateien löscht.

Als Verwendungsbeispiel:
 GetFilesInDirectory('C:\', '*.*', Listbox1.Items, False, True); Am Besten wäre natürlich dass man einfach noch ein Boolean Wert hinzufügen könnte . Vielleicht geht dass auch mit ner For Schleife mit der Listbox dann aber ich glaube dass dauert dann viel länger oder?



MFG Lars Wiltfang
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Nach Dateityp suchen und dann löschen

  Alt 26. Mär 2008, 09:04
nach List.Add() einfach DeleteFile aufrufen, oder habe ich etwas überlesene?
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Nach Dateityp suchen und dann löschen

  Alt 26. Mär 2008, 09:06
Alos ich soll unter diese Zeile:
List.Add(Directory + SR.Name)

Das hier hinzufügen:
DeleteFile(Directory + SR.Name)



???
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
grenzgaenger
(Gast)

n/a Beiträge
 
#4

Re: Nach Dateityp suchen und dann löschen

  Alt 26. Mär 2008, 09:07
IPO --> IPO

Dateien suchen und zwischenspeichern (mit pfaden), in der zweiten phase den zwischenspeicher abarbeiten.

IPO bitte nicht vermischen.
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Nach Dateityp suchen und dann löschen

  Alt 26. Mär 2008, 09:09
Danke es geht!!! Vielen Vielen Dank, ich dachte ich müsste die Idee von mir jetzt schon aufgeben^^
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Nach Dateityp suchen und dann löschen

  Alt 26. Mär 2008, 09:21
Geht doch nicht Es werden zwar Daten gelöscht aber immer nur die die nicht in einem Unterverzeichniss liegen, wass muss ich machen?
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: Nach Dateityp suchen und dann löschen

  Alt 26. Mär 2008, 09:21
Zitat von Larsi:
Alos ich soll unter diese Zeile:
List.Add(Directory + SR.Name)

Das hier hinzufügen:
DeleteFile(Directory + SR.Name)
Genau.
Du hast den Eintrag doch schon gefunden.
Warum löschst Du ihn dann nicht gleich, anstatt ihn in eine Liste einzufügen?
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#8

Re: Nach Dateityp suchen und dann löschen

  Alt 26. Mär 2008, 09:31
Zitat von grenzgaenger:
IPO --> IPO
IPO = Input - Processing - Output = EVA?

Delphi-Quellcode:
repeat
  List.Add(Directory + SR.Name);
  DeleteFile(Directory + SR.Name);
until FindNext(SR) <> 0;
  Mit Zitat antworten Zitat
Larsi

Registriert seit: 10. Feb 2007
2.262 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Nach Dateityp suchen und dann löschen

  Alt 26. Mär 2008, 09:36
Und wo ist vom Code her jetzt ein Unterschied, mein Problem ist ja jetzt dass der Inhalt Unterordner nicht gelöscht wird!
Ein Tag ohne Delphi ist ein verlorener Tag!

Homepage zu meinem neuen Programm: StreamZ
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#10

Re: Nach Dateityp suchen und dann löschen

  Alt 26. Mär 2008, 09:50
Zitat von Larsi:
Und wo ist vom Code her jetzt ein Unterschied, mein Problem ist ja jetzt dass der Inhalt Unterordner nicht gelöscht wird!
Wenn das hier:

GetFilesInDirectory('C:\', '*.*', Listbox1.Items, False, True); Dein Aufruf ist, ist das auch kein Wunder. Vielleicht solltest Du mal schauen, was der Parameter "WithSubDirs" macht, den Du mit false belegst...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf