我需要为我的程序存储一些特定于用户的配置数据.Application Data/AppData(在用户的目录中)和ProgramData(在系统驱动器的根目录中)似乎是合理的放置它的地方.
程序数据和应用程序数据之间有什么区别,我应该使用哪些?
在我的系统上,%AppData%导致ApplicationData其中C:\Users\<USER>\AppData\Roaming
但也存在C:\Users\<USER>\AppData\Local
一些混乱D:\Users\<USER>\AppData\LocalLow
string local = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string roaming = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
Run Code Online (Sandbox Code Playgroud)
我的问题是,我的应用程序应该在哪些位置保存其数据?
是否有使用这些地点的指南?如果我选择了错误的位置,我是否会让自己接受问题?
1)如何找到用户正在使用的Windows安装驱动器.我需要这个导航到DocumentsandSettings中的ApplicationData.
2)我怎样才能获得用户名,以便我可以转到ApplicaitionData.例如:"D:\ Documents and Settings\user\Application Data".
在创建将定位到许多Windows版本的应用程序时,确定应存储应用程序特定数据的位置的最佳做法是什么.特别:
我知道在Windows Vista上有一些环境变量,比如%APPDATA%,可以使用,但是Windows 7,Windows XP,Windows 98呢.
我的主要问题是,Microsoft是否有针对此的最佳实践文档,概述了不同类型数据(应用程序与用户)的文件系统位置以及在读取/写入这些位置时需要牢记的安全隐患?
我也感兴趣的是它不仅适用于.NET应用程序(可以使用ApplicationSettingsBase),还适用于非托管C/C++应用程序.
感谢Pax和Remus两位伟大的答案.我也找到了这个项目(特定于XP):
如何通过VB.NET访问%appdata%中的文件?
例如,C:\Users\Kuzon\AppData\Roaming\program.我如何访问该文件,但在另一台Windows 7计算机上?另外,你会如何在Windows XP上做到这一点?我相信它是%Application Data%.
众所周知,appdata文件夹就是这样
C:\Users\*Username*\AppData\Roaming
Run Code Online (Sandbox Code Playgroud)
在Windows 7上
由于我的应用程序将部署在各种Windows操作系统上,我需要能够100%的时间获取文件夹.问题是你是如何用C++做的?由于我不知道确切的Windows操作系统,它可能是XP,Vista或7,最重要的是我不知道用户名是什么.
我对Windows 7有点新.我正在运行Windows 7的外语版本(不确定这是否重要).无论如何,当我使用cmd运行命令提示符环境时
C:\ Users\MyUserNameHere> dir
我没有看到名为AppData的文件夹.
当我做同样的事情,并从Windows资源管理器应用程序检查出来时,我也看不到AppData文件夹.但是,当我
C:\ Users\MyUserNameHere> cd AppData
我可以cd到这个文件夹.就好像这个文件夹被隐藏了一样.
所以,我的问题是:
这个文件夹是什么,即它在Windows 7中的用途是什么?我看到一些安装在这个文件夹下安装东西而其他安装没有.为什么?
其中包含的三个目录有什么区别:Local,LocalLow和Roaming?他们有不同的目的吗?
我可以"取消隐藏"这个隐藏的AppData文件夹,以便我可以在Windows explorer.exe应用程序中更轻松地导航到它吗?
Aptana Studio 3安装在AppData\Local目录下,而使用Skype进行的网络摄像头拍摄可在AppData\Roaming下找到.为什么这个目录的选择?(这个问题只是2的一个特例)
谢谢你的澄清,
我还想指出一本详细介绍Windows 7此类内容的书,以便我可以更好地使用操作系统,如果你不介意建议链接或书籍.
好吧,我不知道如何输入这一切,所以请耐心等待.
这超出了我,我仍然是C#的新手.我基本上需要在运行程序的当前用户的漫游应用程序数据中创建一个文件夹.我还需要访问应用程序数据部分中的另一个文件夹,然后用我创建的应用程序数据文件夹中的文件副本替换文件.
我想要一个代码片段,在所有平台(至少是Win/Mac/Linux)上获取适当的app数据目录(配置文件等).例如:Windows上的%APPDATA%/.