Какие каталоги делают другое Приложение, SpecialFolders указывают на в WindowsXP и Windows Vista

А именно, я имею:

  • Environment.SpecialFolder.ApplicationData
  • Environment.SpecialFolder.CommonApplicationData
  • Environment.SpecialFolder.LocalApplicationData

Я неясен относительно, были, они указывают на в Windows XP и/или Windows Vista.

Что я нашел, до сих пор то, что ApplicationData указывает на Папку ApplicationData для текущего пользователя в XP и бродящую папку данных приложения в Vista.

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

25
задан Thorsten Lorenz 23 March 2010 в 15:30
поделиться

2 ответа

На это нет однозначного ответа. Фактически, именно почему определены эти "SpecialFolder". Вы используете их вместо жестко запрограммированного пути.

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

Environment.SpecialFolder.CommonApplicationData похожа, но совместно используется пользователями. Вы можете использовать это, например, для хранения шаблонов документов.

Environment.SpecialFolder.LocalApplicationData является альтернативой ApplicationData без роуминга. Таким образом, вы никогда не будете хранить там важные данные. Однако, поскольку это не роуминг, это хорошее место для временных файлов, кешей и т. Д. Обычно это на локальном диске.

29
ответ дан 28 November 2019 в 20:57
поделиться

Легко проверить. Используйте Environment.GetFolderPath (...); и используйте MessageBox или Console.Write , и он также покажет вам, куда он указывает. Вам нужно только создать простое приложение, которое будет отображать для вас пути, и запустить его под Windows XP и Windows Vista.

using System;

namespace EnvironmentCheck
{
    class Program
    {
        static void Main(string[] args)
    {
        Console.Write(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\n");
        Console.Write(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)+ "\n");
        Console.Write(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)+ "\n");
    }
}
}

Мои результаты в Win 7 x64

C: \ Users \ myUsername \ AppData \ Roaming
C: \ ProgramData
C: \ Users \ myUsername \ AppData \ Local

15
ответ дан 28 November 2019 в 20:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: