2013-05-11 3 views
11

Ну, я не знаю, как набрать все это, так что медведь со мной, пожалуйста.Как создать папку appdata с C#

Это вне меня, я все еще новичок на C#. Мне в основном нужно создать папку в данных роуминг-приложения текущего пользователя, запускающего программу. Мне также нужно получить доступ к другой папке в разделе данных приложения, а затем заменить файл копией файла в папке данных приложения, которую я создал.

ответ

34

Первые два прохода просто

// 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 folder exists and, if not, create it. 
// If folder exists then CreateDirectory will do nothing. 
Directory.CreateDirectory(specificFolder); 

В последнем проходе не ясно, где у вас есть файл для копирования.
Однако, если предположить, что у вас есть файл с именем

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

MSDN ссылки:

Path class
Environment.SpecialFolder enum
File.Copy method

+0

Извините за двойной пост ... Хорошо, спасибо Стив. Теперь, когда я знаю, что это возможно, позвольте мне уточнить. Мне нужно только создать его. Итак, я делаю экран загрузки, который будет проверять все необходимые вещи, такие как папка appdata и т. Д. Мне нужно его проверить, и если эта папка была создана, она пройдет. Если нет, это создаст его. Я знаю, что это будет автоматическая вещь. Так. Да. Кроме того, файл, который я бы скопировал и заменил, находится в папке приложения. Кроме того, мне нужно будет переименовать файл, который я копирую. Имя должно быть одинаковым. –

+0

OK Я добавил чек для CreateDirectory. Для части копии файла снова нужно указать пример того, как будет указан ваш файл для копирования, как вы хотите переименовать его и где он находится. Что вы подразумеваете под «папкой приложения»? – Steve

+0

Хорошо, что самый простой пример, который я могу придумать, - это Minecraft. Итак, minecraft.jar находится в appdata .minecraft/bin/minecraft.jar. Предположим, я хочу заменить этот файл minecraft.jar своим собственным, но что, если мой назван _minecraft.jar, это не сработает. Мне нужно будет изменить имя файла. Поэтому он копирует appdata/.myfolder/_minecraft.jar и переименовывает и заменяет appdata/.minecraft/bin/minecraft.jar. Имеет ли это смысл? –

1

Я хотел бы предложить вам использовать Isolated Storage, не заботясь, где ваши файлы физически располагается. Это более гибкий способ - вы просто используете API изолированного хранилища, и инфраструктура .NET отвечает, где находятся физически файлы (например, в разных операционных системах местоположение может отличаться).

Смежные вопросы