Reputation: 5001
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.
Upvotes: 15
Views: 15307
Reputation: 82325
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.
Upvotes: 8
Reputation: 116117
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.
Upvotes: 28
Reputation: 22148
Could you just create a subdirectory in the Temp path?
string dir = System.IO.Path.GetTempPath() + "\\<searchstring>;
Upvotes: 1
Reputation: 483
You can either:
Upvotes: 0
Reputation: 241581
Use Path.GetTempFileName
and keep track of the temporary files that you've allocated during the session. You should clean up when your program exits.
Upvotes: 0