Announcement

Collapse
No announcement yet.

Löschen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Löschen

    Hallo zusammen,
    habe folgende Frage gibt es eine Möglichkeit um ein Programm zu schreiben das nur Dateien mit einem bestimmten Datum löscht was für Befehle werden dafür verwendet kleines Bsp. wäre toll
    evtl. sollte man die Pfade zu den Verzeichnissen der zu löschenden Dateien aus einer .txt Datei einlesen wo jeder dann verschiedene Pfade eintragen kann.

    Gruss
    Ralf

  • #2
    Hallo Ralf,

    folgendes ist zwar C++ (Borland C++ Builder), Du solltet aber das Prinzip verstehen und die verwendeten Befehle sollten auch identisch sein.
    <PRE>
    AnsiString SearchFiles = ExtractFilePath(Application->ExeName) + "\\*.log";
    AnsiString SearchFilesDir = ExtractFilePath(Application->ExeName);
    int count = 0;
    int delcount = 0;
    int errcount = 0;
    TDateTime MaxAge = TDateTime::CurrentDate();
    MaxAge.Val -= 90; // Protokolldateien 90 Tage aufbewahren...
    TSearchRec sr;
    int iAttributes = 0;
    iAttributes |= faAnyFile;
    if (FindFirst(SearchFiles, iAttributes, sr) == 0)
    {
    do
    {
    count++;
    if (FileDateToDateTime(sr.Time) < MaxAge)
    {
    delcount++;
    try
    {
    DeleteFile(SearchFilesDir + sr.Name);
    }
    catch(...)
    {
    delcount--;
    errcount++;
    }
    }
    } while (FindNext(sr) == 0);
    }
    FindClose(sr);
    </PRE>

    Grüße

    Jochen

    EDIT: Weiß jemand warum da überall eine Leerzeile zwische ist? Sollte man die PRE-Tags nicht mehr verwenden

    Comment


    • #3
      Danke Jochen,
      will aber ehrlich sein ich versteh es nicht bin tatsächlich Neuling und habe bisher nur kleine Prog. zu Berechnungen geschrieben
      vieleicht hat jemand noch was bzw. gibt es ein Tutorial wo sowas behandelt wird.

      Gruss
      Ral

      Comment


      • #4
        var
        SearchFiles :string;
        SearchFilesDir :string;
        MyYear, MyMonth, MyDay :integer;
        MyAge :TdateTime;
        sr :TSearchRec;
        retval:integer;
        begin
        SearchFiles := ExtractFilePath(Application.ExeName) + '*.*';
        SearchFilesDir := ExtractFilePath(Application.ExeName);
        MyAge := EncodeDate(myYear, myMonth, Myday);
        retval := FindFirst(SearchFiles, faAnyFile, sr);
        while retval = 0 do
        begin
        if (Date(FileDateToDateTime(sr.Time)) = MyAge) then
        begin
        DeleteFile(SearchFilesDir + sr.Name);
        end;
        retval := FindNext(sr);
        end
        FindClose(sr);
        end;

        Das sollte es in Delphi sein. Das Programm löscht alle Dateien im Applikations-Verzeichnis, die das Datum myDay.MyMonth.MyYear haben.
        Ansonsten mal in die Hilfe gucken für Findfirst, FindNext.

        Ich hoffe, das hilft.

        Grüße

        Juli

        Comment


        • #5
          Danke für die Übersetzung, Julia. Ich kann zwar mittlerweile leidlich Delphi lesen, aber mit dem Schreiben ist das so eine Sache...

          Grüße Joche

          Comment


          • #6
            Danke Julia

            Comment

            Working...
            X