Search code examples
c#.netfiletemporary-files

Length of time temporary file kept?


I'm working on a program which will generate some temporary files, wait for the user's input on a few things, then use these temporary files for an operation.

I was wondering if I can reliably expect that these temporary files will not go away before I am completely done with them (e.g. will they disappear while the user is working?).

Obviously, I could create my own folder in my appdata and use that for temporary files. But it would be easier to use C#'s Path.GetTempFileName() or Path.GetTempPath() + somename. When would files created in this way be removed?

To clarify, I'm not looking for how to create temporary files, but rather how long temporary files created in GetTempPath() are kept, and whether or not that would be long enough to wait for user input before using them.


Solution

  • I'm not aware of any process in Windows that deletes temporary files automatically. The user may have a cleanup job set up, but you can reasonably expect your files to be left alone for a day or two as a minimum.

    For comparison, when you open an attachment in Outlook, it copies the attachment to a temporary file and launches the associated application. These temporary attachment files might need to stay around indefinitely, if the user never closes the associated application.