Где должны быть записаны рабочие файлы приложения Windows? - PullRequest
0 голосов
/ 14 ноября 2009

Если у вас есть приложение Windows, которое должно записывать рабочие файлы как часть своей нормальной работы (не запрашивается пользователем):

  • Где в файловой системе они должны быть записаны?
  • Как правильно получить этот каталог в .NET для всех версий Windows (XP / V / 7 / Server)?

(Запись в тот же каталог, где находится исполняемый файл или каталог «temp», не подходит для моего конкретного случая.)

Ответы [ 5 ]

5 голосов
/ 15 ноября 2009

Другим вариантом является Изолированное хранилище ( Вступление .). Может использоваться для каждой сборки, для каждой машины, для пользователя и для любой комбинации указанных выше.

5 голосов
/ 14 ноября 2009

Наиболее распространенным местом будет:

string path = Environment.GetFolderPath(
      Environment.SpecialFolder.ApplicationData);

Но есть и другие значения Environment.SpecialFolder, которые могут быть полезны. И, конечно же, есть папка пользователя Documents.

И вы говорите, что вам не нужен временный файл, но если он вам нужен в 1 сеансе,

 string path = System.IO.Path.GetTempFileName();

может быть очень полезным.

3 голосов
/ 14 ноября 2009
2 голосов
/ 14 ноября 2009

Environment.SpecialFolder.LocalApplicationData будет .NET способ сделать это.

1 голос
/ 15 ноября 2009

Да, в разделе AppData (обычно% APPDATA% \ [название компании] \ [имя приложения] - расположение% APPDATA% отличается в XP и Vista / 7, поэтому обязательно используйте слой абстракции и не нажимайте т жестким кодом пути) является стандартным местоположением. Пожалуйста, пожалуйста, пожалуйста, пожалуйста, не помещайте их нигде в Program Files.

...