ApplicationData: Everything that your application needs as "per user" data and does not fall under other categories. Standard configuration files would go here.
CommonApplicationData: Everything that is not "per user" data.
LocalApplicationData: Data that is per user and non-roaming. For example, everything where you want to ENSURE that it is only stored on this machine (like machine activation codes, often also cache/temporary data). Standard temporary files would go here.
MyDocuments: User data that the user actually would identify as "recognizable single documents".
If you don't care about the filename, you can also use a tempfile API to generate a temporary file in the temp
directory. You should NOT do this manually. In, for example, .NET you can use Path.GetTempFileName()
for that purpose.