Папка для локального хранения файлов данных в приложении WPF - PullRequest
13 голосов
/ 12 марта 2012

В настоящее время у меня есть код ниже в моем приложении WPF, которое делает именно то, что я хочу, однако после публикации этого файла он не обязательно сможет получить доступ к этим папкам, так как они не будут указывать на правильные значения.каталог и папок не будет.

Я надеялся, что кто-нибудь сможет сказать мне, как лучше всего сохранить что-то в локальной папке?

Не важно, находится ли она внутри самой папки приложения или нет.

Код, который я сейчас использую для записи файла:

using (Stream stream = File.Open(@"..\..\Templates\data.bin", FileMode.Create))
            {
                BinaryFormatter bin = new BinaryFormatter();
                bin.Serialize(stream, templateList);
            }

Код, который я сейчас использую для загрузки файла:

using (Stream stream = File.Open(@"..\..\Templates\data.bin", FileMode.Open))
        {
            BinaryFormatter bin = new BinaryFormatter();

            templateList = (List<Template>)bin.Deserialize(stream);
        }

Ответы [ 2 ]

16 голосов
/ 12 марта 2012

Вы можете использовать Environment.SpecialFolder, чтобы найти подходящее место для размещения файлов (например, ApplicationData будет хорошим местом для начала). Если вам нужен только временный файл, вы можете использовать Path.GetTempFileName для его создания.

Редактировать: одна последняя заметка. Хранение вещей в самой папке приложения может быть огромной болью. Обычно папка приложения создается с учетной записью администратора во время установки, поэтому ваше приложение не сможет писать в нее, работая под учетной записью пользователя.

11 голосов
/ 12 марта 2012

Вы можете использовать System.Environment.SpecialFolder.LocalApplicationData для хранения данных, специфичных для приложения:

using System;

class Sample 
{
    public static void Main() 
    {
          Console.WriteLine("GetFolderPath: {0}", 
                 Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData));
    }
}

Ссылка: http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...