首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取应用程序特定的数据文件夹(ProgramData)?

如何获取应用程序特定的数据文件夹(ProgramData)?
EN

Stack Overflow用户
提问于 2015-01-13 09:33:31
回答 2查看 26.1K关注 0票数 12

我需要读取和写入包含应用程序特定数据的文件,这些数据在所有用户之间共享。

我尝试使用Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),但它只返回C:\ProgramData。

我的问题是:

它是否存在像Path.GetDirectoryName(Application.UserAppDataPath)这样的系统,它将根据我的应用程序名称和版本给我确切的文件夹来编写?

或者ProgramData不是这样做的合适地点。

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2018-07-09 06:54:38

我认为CommonApplicationData正是您所要寻找的,因为它是不绑定到用户的所有应用程序的全局文件夹。

代码语言:javascript
复制
var commonpath = GetFolderPath(SpecialFolder.CommonApplicationData);
var path = Path.Combine(commonpath, "YourAppName\\YourApp.exe");
try { 
    Process.Start(path);
    // or put data there or whatever
} 
catch (Exception ex)
{
    MessageBox.Show(path);
}

还有用于用户绑定数据的SpecialFolder.LocalApplicationData。

票数 11
EN

Stack Overflow用户

发布于 2015-07-22 18:38:51

它是否存在像Path.GetDirectoryName(Application.UserAppDataPath),这样的系统,根据我的应用程序名称和版本,给我确切的文件夹来编写?

不,它不存在,至少在运行Windows 7时是这样的(不知道Windows 8/ WinRT/ Windows应用程序)。可行的解决方案只是将Environment.GetFolderPath(...)输出与应用程序的自定义路径连接起来。通常,为了减少冲突的可能性,可以是类似于YourOrganization\YourApplicationYourFullName\YourApplication的东西,也可能是附加版本。

或者ProgramData不是这样做的合适地点。

这是在磁盘上存储应用程序范围的信息的正确位置。与您的应用程序相关的信息以及计算机上每个Windows用户日志记录的不同信息应该改为<User folder>\AppData\Roaming\...<User folder>\AppData\Local\...

Beware:正如注释中已经提到的,通常需要管理员权限才能在C:\ ProgramData .中工作,因此您需要准备一个安装项目,在安装阶段将在ProgramData中创建文件夹并授予正确的权限。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27918865

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档