Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Where to write my temporary files to?

Tags:

c#

file-io

I have numerous byte[] representing pdf's. Each byte array needs to be loaded at the start of the application and shown as a thumbnail on my gui. So far I have managed to write the files to a temp location using:

System.IO.Path.GetTempPath();

Then using this path I get all pdf files, write them using

System.IO.File.WriteAllBytes(fileName, arrayOfPdfs[i]);

and then navigate to that directory, get all pdf files and turn them in to thumbnails in my app.

The thing is I only want the pdfs I have just put in the temp location only, so how else can I store the pdfs, or even where else can I store them so I know when I come to turn them in to thumbnails, the files I am reading are the ones I have just written? This is so I can be sure the user is only looking at the relevant pdfs that relate to their search on my system.

Thanks.

like image 475
tom Avatar asked Jan 13 '11 17:01

tom


2 Answers

Build a randomly named directory in the base temporary directory:

string directoryName = Path.GetRandomFileName();
Directory.CreateDirectory(Path.Combine(Path.GetTempPath(), directoryName));

Store your files in there.

like image 175
ChristopheD Avatar answered Oct 15 '22 09:10

ChristopheD


I would recommend in your users ApplicationData/LocalApplicationData folder provided by the OS for your app..

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

Of course if the storage doesn't need to persist very long (really temporary) then you could just use the temp folder and create a folder inside of it to isolate your files.

like image 41
Quintin Robinson Avatar answered Oct 15 '22 09:10

Quintin Robinson