Подтвердить что ты не робот

В каких каталогах разные приложения SpecialFolders указывают на WindowsXP и Windows Vista

А именно:

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

Непонятно, как это было в Windows XP и/или Windows Vista.

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

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

4b9b3361

Ответ 1

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

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

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

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

Ответ 2

Легко проверить. Use 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

Ответ 3

Для тех, кто хочет знать, что эти специальные папки оценивают в Windows XP, но не имеет XP для его запуска, вот что я получаю при запуске кода @MadBoy:

ApplicationData: C:\Documents and Settings\YourAccountHere\Application Data​​p >

CommonApplicationData: C:\Documents and Settings\All Users\Application Data​​p >

LocalApplicationData: C:\Documents and Settings\YourAccountHere\Local Settings\Application Data​​p >