Matt Hatcher
Matt Hatcher

Reputation: 760

How to create appdata folder with C#

I basically need to create a folder in the roaming application data of the current user running the program.
Then I also need to access another folder in the application data section where I have a file that I want to copy into the application data folder I had just created.

Upvotes: 21

Views: 40047

Answers (2)

Steve
Steve

Reputation: 216293

The first two passes are straightforward

// The folder for the roaming current user 
string folder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

// Combine the base folder with your specific folder....
string specificFolder = Path.Combine(folder, "YourSpecificFolder");

// CreateDirectory will check if every folder in path exists and, if not, create them.
// If all folders exist then CreateDirectory will do nothing.
Directory.CreateDirectory(specificFolder);

In the last pass is not clear where you have the file to copy.
However, supposing that you have a file called

string file = @"C:\program files\myapp\file.txt";
File.Copy(file, Path.Combine(specificFolder, Path.GetFileName(file));

MSDN links:

Path class
Environment.SpecialFolder enum
File.Copy method

Upvotes: 49

Tadas Šukys
Tadas Šukys

Reputation: 4220

I would suggest you to use Isolated Storage without bothering where your files are physically located. That's more flexible way - you just use the Isolated Storage API and the .NET framework is responsible where physically files are located (for example in different operating systems location may be different).

Upvotes: 2

Related Questions