Josh Jones Josh Jones - 9 months ago 36
C# Question

Clear File Contents After X Amount Of Time

I need a way of clearing a text file after a certain period of time. This is what I have so far

List<string> previousWeaponList = new StreamWriter("PreviousList.txt");

So this is reading the previous weapon list into the file after a weapon is requested the weapon is written to that list. Once I do this I have a file which will get full very quickly if I save every single request, which is why I need to clean it out every X amount of time.

Would it be possible to do it like this?

private Thread fileCleaner;
public void FileCleaner()
fileCleaner = new Thread(new ThreadStart(this.Run))

Then just have a run function which if it's true it will just write to the file and then use a


I heard using Threads for time isn't a good idea, but I am not an expert on this.


Very similar question and answer here:

Delete files from the folder older than 4 days

Relevant answer:

I would recommend using a System.Threading.Timer for something like this. Here's an example implementation:

System.Threading.Timer DeleteFileTimer = null;

private void CreateStartTimer()
 TimeSpan InitialInterval = new TimeSpan(0,0,5);
 TimeSpan RegularInterval = new TimeSpan(5,0,0);

 DeleteFileTimer = new System.Threading.Timer(QueryDeleteFiles, null, 
        InitialInterval, RegularInterval);


private void QueryDeleteFiles(object state)
  //Delete Files Here... (Fires Every Five Hours).
  //Warning: Don't update any UI elements from here without Invoke()ing
  System.Diagnostics.Debug.WriteLine("Deleting Files...");

private void StopDestroyTimer()


This way, you can run your file deletion code in a windows service with minimal hassle.