AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dateien löschen

Ein Thema von blauglaser · begonnen am 4. Feb 2006 · letzter Beitrag vom 6. Feb 2006
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#11

Re: Dateien löschen

  Alt 5. Feb 2006, 15:54
Zitat von blauglaser:
Danke für die Mühe,
und sorry wußte nicht das es nicht gerne gesehen ist wenn zuviele wahrscheinlich dumme Fragen gestellt werden.
Das stimmt doch nicht, dumme Frage gibt es nicht und je mehr Fragen du stellst destso mehr sieht man das du auch was lernen willst. Ich hatte nur die Befürchtung das es zum Stillstand gekommen ist und es einfach nicht weiter geht.
Desweiteren muss ich zugeben das ich mir den Source von dir nicht angesehen hab da es eben meist schneller geht so etwas selbst neu zu basteln. Aus deiner Sicht ist es jedoch besser den Fehler zu finden um etwas zu lernen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
blauglaser
(Gast)

n/a Beiträge
 
#12

Re: Dateien löschen

  Alt 5. Feb 2006, 16:10
Danke!

Wenn jemand noch eine Idee hat wo der Fehler liegt würde ich mich freuen.

Gruss
Ralf
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#13

Re: Dateien löschen

  Alt 5. Feb 2006, 16:23
Hallo Ralf,

rätselhaft ist, weil du es noch nicht erklärt hast, warum du zwar die Datei, deren Name in der Variable DateFile steht, überprüfst, aber dann eine Datei zu Löschen versuchst, deren Name dem Timestamp der überprüften Datei entspricht. Die Datumswandlungen funktionieren ansonsten allesamt bei mir. Wenn du da noch Probleme siehst, dann solltest du ein Stück zusammenhängenden Code posten, an dem man dein Problem nachvollziehen kann. Und bei Fehlern musst du unmissverständlich die Stelle im Code bezeichnen und den Wortlaut der Fehlermeldung wiedergeben. So werden deine Probleme viel schneller gelöst.

Freundliche Grüße

marabu
  Mit Zitat antworten Zitat
blauglaser
(Gast)

n/a Beiträge
 
#14

Re: Dateien löschen

  Alt 5. Feb 2006, 18:11
Hallo Marabu,
also als Fehlermeldung kommt "Ungültiges Argument zum codieren des Datums" wenn ich das Programm in Einzellschritten durchlaufe bleibt es bei "if FileDateToDateTime(FileAge(DateFile)) <= MyAge thenif FileDateToDateTime(FileAge(DateFile)) <= MyAge then stehen wenn ich dann FileDateToDateTime vor FileAge entferne läuft das Programm auf DeleteFile(Datefile); aber die Datei wird nicht gelöscht.
Den Code für FindFile habe ich im Netz gefunden und nachträglich das Result zum testen abgeändert damit die Datei an eine Variable übergeben wird.
Delphi-Quellcode:
function FindFiles (aPath, aFindMask: String; aWithSub: Boolean):String;
Var
  FindRec: tSearchRec;
  Dat: String;
Begin
  // Wenn die Stringliste nil ist oder aPath oder aFind nicht angegeben ist
  // dann raus
  If (aPath = '') or (aFindMask = '') Then
    Exit;


  // Wenn am Ende der Pfadangabe noch kein \ steht, dieses hinzufügen
  // (Oder die Funktion IncludeTrailingPathDelimiter aus der Unit SysUtils.pas verwenden)
  If aPath[Length (aPath)] <> '\Then
    aPath := aPath + '\';


  // Im aktuellen Verzeichnis nach der Datei suchen
  If FindFirst (aPath + aFindMask, faAnyFile, FindRec) = 0 Then
    Repeat
      If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then
        // ...Ergebnis in die Stringlist einfügen
        Dat:= FindRec.Name;
        Result:=Dat;
    Until FindNext (FindRec) <> 0;


  FindClose (FindRec);


  // Wenn nicht in Unterverzeichnissen gesucht werden soll dann raus
 // If Not aWithSub Then
   // Exit;

 
  // In Unterverzeichnissen weiter suchen
 // If FindFirst (aPath + '*.*', faAnyFile, FindRec) = 0 Then
   // Repeat
     // If (FindRec.Name <> '.') and (FindRec.Name <> '..') Then
        // Feststellen, ob es sich um ein Verzeichnis handelt
       // If Boolean (FindRec.Attr and faDirectory) Then
          // Funktion erneut aufrufen, um Verzeichnis zu durchsuchen (Rekursion)
         // FindFiles (aPath + FindRec.Name, aFindMask, aWithSub, aResult);
// Until FindNext (FindRec) <> 0;


  // FindClose (FindRec);
End;


{$R *.DFM}


procedure TForm1.Button1Click(Sender: TObject);

Var
path, Mask :String;
MyYear,MyMonth,MyDay:integer;
Datefile:String;
MyAge:TDateTime;



begin
path := Edit1.text;
Mask := Edit2.text;
MyYear := StrToInt (Edit3.Text);
MyMonth := StrToInt (Edit4.Text);
MyDay := StrToInt (Edit5.Text);
MyAge := EncodeDate(myYear, myMonth, Myday);
Datefile := FindFiles (path, Mask, True);
if FileDateToDateTime(FileAge(DateFile)) <= MyAge then
begin
DeleteFile(Datefile);
end;
end;


end.
ich hoffe das mit dem Einfügen des Quelltextes ist so Ok

freundliche Grüsse
Ralf
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#15

Re: Dateien löschen

  Alt 5. Feb 2006, 18:55
Ralf, schau bitte mal in deine Online-Hilfe. Eventuell hat sich seit Delphi 3 einiges an den Signaturen geändert. Prüfe ob FileAge() und FileDateToDateTime() überhaupt in der Weise verwendet werden können, wie es dir hier mehrfach vorgeschlagen wurde. Unter den neueren Delphi-Versionen lässt sich der Code problemlos kompilieren.

marabu
  Mit Zitat antworten Zitat
blauglaser
(Gast)

n/a Beiträge
 
#16

Re: Dateien löschen

  Alt 5. Feb 2006, 19:13
Marabu, hat ich mir auch schon überlegt und die Version 5 die es kostenlos zum Download gibt heruntergeladen aber es passiert das gleiche.
Es ist doch richtig dass die Datei aus FindFile als String übergeben wird und dann mit if FileDateToDateTime(FileAge(DateFile)) <= MyAge then nach TDateTime umgewandelt werden muss damit der Vergleich mit MyAge durchgeführt werden kann.


Gruss
Ralf
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#17

Re: Dateien löschen

  Alt 5. Feb 2006, 20:51
die Datei bei FindFirst etc. ist aber ohne Pfadangabe, vielleicht ist das der Fehler. Im übrigen wird bei FindFirst etc. bereits das Dateitatum mit geliefert. Wie man dieses wandelt findest du in dem Stückchen was ich gepostet hab.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#18

Re: Dateien löschen

  Alt 6. Feb 2006, 07:54
Guten Morgen Ralf,

dein syntaktisches Problem mit der Funktion FileDateToDateTime() hat mich veranlasst deinen Code mit Delphi2 nachzustellen. Im Anhang findest du das Projekt, welches bei mir problemlos kompiliert und auch das tut was es soll. Das Löschen simuliere ich dabei aber nur.

Deine Funktion FindFiles() ist irgendwie nicht sehr durchdacht und sieht aus, als hättest du sie irgendwo gefunden und verschlimmbessert. Ich habe sie neu geschrieben. Sie durchsucht nur das angegebene Verzeichnis, keine Unterverzeichnisse. Dadurch bleibt die Funktion klein und übersichtlich:

Delphi-Quellcode:
function FindFiles (
  const fileExpr: String; // vollständiger Dateiname mit wildcards
  const files: TStrings // Ergebnisliste mit vollst. Namen
): Boolean; // Erfolgreich bei true
var
  sr: TSearchRec;
  path: String;
begin
  Result := true;
  files.Clear;
  files.BeginUpdate;
  path := ExtractFilePath(fileExpr);
  if FindFirst(fileExpr, faArchive, sr) = 0 then
  begin
    repeat
      files.Add(path + sr.Name);
    until FindNext(sr) <> 0;
    FindClose(sr);
  end else Result := false;
  files.EndUpdate;
end;
Freundliche Grüße vom marabu
Angehängte Dateien
Dateityp: zip blauglaser_204.zip (2,1 KB, 12x aufgerufen)
  Mit Zitat antworten Zitat
blauglaser
(Gast)

n/a Beiträge
 
#19

Re: Dateien löschen

  Alt 6. Feb 2006, 18:22
Hallo alle zusammen,
jetzt geht es der Pfad hat noch gefehlt.

Nochmals Danke an alle für die tolle Hilfe und Mühe die Ihr euch gemacht habt

Gruss

Ralf
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 06:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz