Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi bestimmte Dateien suchen und automatisch löschen (https://www.delphipraxis.net/116997-bestimmte-dateien-suchen-und-automatisch-loeschen.html)

JohnDee 9. Jul 2008 20:57


bestimmte Dateien suchen und automatisch löschen
 
Hallo,

ich habe eine Frage. Und zwar habe ich im Laufe der Zeit meinen Rechner bisserl zugemüllt.
Nun möchte ich mit Delphi folgendes bewerkstelligen.

Delphi soll sämtliche Verzeichnisse und Dateien nach einem bestimmten, vordefinierten Namen
durchsuchen und diese Dateien / Verzeichnisse anschliessend löschen.

Dafür brauch ich keine Schaltfläche oder sonstiges.
Der Name der Datei/ des Verzeichnisses, soll direkt im Quelltext festgelegt werden.
Sobald ich das Programm dann starte soll nach z. Bsp. test123 gesucht werden.
Sofern dann eine Datei oder mehrere Dateien/Verzeichnisse mit diesem Namen gefunden werden,
sollen diese gelöscht werden.

Delphi soll aber direkt löschen und nicht nur in den Papierkorb verschieben.

Gibt es da irgendeine Möglichkeit das mit Delphi 3 zu bewerkstelligen ?

Danke
JD

marabu 9. Jul 2008 21:18

Re: bestimmte Dateien suchen und automatisch löschen
 
Herzlich willkommen in der Delphi-PRAXiS, JohnDee.

Geht es dir um das Bereinigen deiner Festplatte, dann kannst du das mit dem Shell-Befehl XDEL /S erledigen. Willst du das aus irgendwelchen Gründen mit Delphi programmieren, dann wirst du dich mit FindFirst() und den zugehörigen Funktionen FindNext() und FindClose(), nicht zu vergessen DeleteFile(), beschäftigen müssen.

Freundliche Grüße

Andreas L. 9. Jul 2008 21:22

Re: bestimmte Dateien suchen und automatisch löschen
 
Schau dir mal folgendes an:

FindAllFilesFindAllFiles
Hier im Forum suchenDeleteFile

JohnDee 9. Jul 2008 22:50

Re: bestimmte Dateien suchen und automatisch löschen
 
gibt es da keine einfache möglichkeit mit deletefile ?

muss doch irgendwie möglich sein zu sagen
durchsuche laufwerke nach datei test1234
wenn gefunden dann lösche datei 1234

mehr soll ja nicht passieren,
weder irgendeine oberfläche noch nen button oder sonst was

rotfc 9. Jul 2008 23:05

Re: bestimmte Dateien suchen und automatisch löschen
 
Doch, gibt es:

Eine Batch-Datei namens deletefile.bat erstellen, die dann XDEL aufruft :mrgreen:

Zitat:
> weder irgendeine oberfläche noch nen button oder sonst was

Dazu wird noch nicht einmal Delphi benötigt, notepad genügt da völlig :love:

Mit Delphi wird's aber wesentlich aufwändiger, es sei denn, Du lässt Delphi die Batch-Datei erstellen...

JohnDee 9. Jul 2008 23:09

Re: bestimmte Dateien suchen und automatisch löschen
 
hehe,

okay das wäre perfekt ...

aaaaaber...

was schreib ich rein in die batchdatei
wahrscheinlich irgendwas mit

del ... hehe , okay
das is mir klar


aber weiter wüsst ich jetzt nicht

nochmal schnell nen nachtrag
gibt es auch ne möglichkeit batchbefehle aus delphi heraus auszuführen..
wenn ja ... wie ?

rotfc 9. Jul 2008 23:55

Re: bestimmte Dateien suchen und automatisch löschen
 
Naja, XDEL (marabu, schäm Dich!) kennt Windows eh nicht ;-)

Klick mal auf Start/Ausführen und gib "cmd" ein.

Tipp dann "del /?" ein und überleg' Dir, was Dein Delphi-Programm wissen/vom Benutzer abfragen muß, um die von Dir gewünschte(n) Datei(en) oder Ordner finden und löschen zu können.

Dann sehen wir weiter.

Zu Deinem Nachtrag: Jain, "Batch-Befehle" kann Delphi nicht ausführen, Batch-Dateien aber schon (mit z.B. "shellexecute").

rotfc 10. Jul 2008 02:03

Re: bestimmte Dateien suchen und automatisch löschen
 
Test, test, eins zwo eins zwei test test ;-)

Delphi-Quellcode:
unit UnitMkDelBatch;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TFormMakeDelBatch = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure MakeTheBatchFileWithNewString;
  public
    { Public-Deklarationen }
  end;

var
  FormMakeDelBatch: TFormMakeDelBatch;

implementation

{$R *.DFM}

var
  sBatchFileName: string;
  sDeleteThis: string;
  sNewString: string;
  sHorror: string;

procedure TFormMakeDelBatch.FormCreate(Sender: TObject);
begin
  sHorror := '*.*';
  sBatchFileName := ExtractFilePath(paramstr(0)) + 'MkDelBatch.BAT';
  if FileExists(sBatchFileName) then DeleteFile(sBatchFileName) else
    MessageBox(Handle, 'Batch-Datei nicht gefunden :-)', 'MkDelBatch', mb_Ok or mb_DefButton1);
  Hide;
end;

procedure TFormMakeDelBatch.FormShow(Sender: TObject);
var
  NewString: string;
  ClickedOK: Boolean;
begin
  sNewString := '';
  NewString := '*.*';
  ClickedOK := InputQuery('Dateneingabe für Datei-/Ordnernamen', 'Was soll in/mit der Batch-Datei gelöscht werden?', NewString);
  if ClickedOK then
  begin
    MessageBox(Handle, PChar(NewString), 'MkDelBatch', mb_Ok or mb_DefButton1);
    sNewString := NewString;
    MakeTheBatchFileWithNewString;
    exit;
  end else
  begin
    sNewString := '';
    close;
    exit;
  end;
end;

procedure TFormMakeDelBatch.MakeTheBatchFileWithNewString;
begin
  MessageBox(Handle, 'Hier unten würde die Batch-Datei erzeugt werden können :-)', 'MkDelBatch', mb_Ok or mb_IconHand or mb_DefButton1)
end;

end.
HTH


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz