В каких каталогах разные приложения SpecialFolders указывают на WindowsXP и Windows Vista
А именно:
-
Environment.SpecialFolder.ApplicationData
-
Environment.SpecialFolder.CommonApplicationData
-
Environment.SpecialFolder.LocalApplicationData
Непонятно, как это было в Windows XP и/или Windows Vista.
То, что я нашел до сих пор, заключается в том, что ApplicationData указывает на папку ApplicationData для текущего пользователя в XP и папку данных роуминга приложений в Vista.
Я также хотел бы знать, есть ли общие рекомендации относительно того, когда использовать.
Ответы
Ответ 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 Datap >
CommonApplicationData:
C:\Documents and Settings\All Users\Application Datap >
LocalApplicationData:
C:\Documents and Settings\YourAccountHere\Local Settings\Application Datap >