Announcement

Collapse
No announcement yet.

Dateien nach bestimmter Zeit löschen

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

  • Dateien nach bestimmter Zeit löschen

    Mit folgendem Code überwache ich ein Verzeichnis, ob eine Datei erstellt wird. Die Erstellungszeit wird sich gemerkt und die Datei wird nach einer Minute wieder gelöscht:

    Code:
    public void TimeDelete()
          {
             DataSet foo = new DataSet();
             foo.ReadXml("rxsmond.config.xml");
    
             foreach(DataRow dr in foo.Tables["TimePath"].Rows)
             {
                path = dr["Location"].ToString();
             }
    
             FileSystemWatcher fsw = new FileSystemWatcher(path);
    
             fsw.Created += new FileSystemEventHandler(CreateFile);
    
             while (true)
             {
                fsw.WaitForChanged(WatcherChangeTypes.All);
             }
    
             // Eventauslösung deaktivieren
             fsw.EnableRaisingEvents = false;
          }
    
          private void CreateFile(object sender, FileSystemEventArgs e)
          {
             int Abbruch = 1;
             TimeSpan Zeit = new TimeSpan(0, 1, 0);
    
             FileInfo info = new FileInfo(e.FullPath);
             while (Abbruch != 0)
             {
                if (DateTime.Now - info.CreationTime > Zeit)
                {
                   File.Delete(e.FullPath.ToString());
                   Abbruch = 0;
                }
             }
          }

    diese funktion müsste ich jetzt für mehrere Dateien in dem Verzeichnis realisieren. Ich dachte an die verwendung von Arrays zum Speichern der Dateipfade und zum speichern der Erstellungszeiten.

    Wie genau kann ich das realisieren? ich bräuchte auch eine funktion, die das array nach freien stellen überprüft und die neue datei dann an der freien stelle speichert und nicht einfach hinten dranhängt

  • #2
    Hallo,

    warum soll das Rad immer wieder neu erfunden werden. Die DataTable-Klasse bringt alles mit, um Daten in eine In-Memory-Tabelle einzufügen, die dann später über die Select-Methode oder über die RowFilter-Eigenschaft des DataViews ausgewertet werden können. Wenn in Visual Studio der DataSet-Designer genutzt wird, lässt sich auch die Struktur des typisierten DataSets mit dieser DataTable visuell entwerfen.

    Comment

    Working...
    X