问题标签 [programdata]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6183 浏览

vb.net - 如何停止将文件保存在 Virtual Store / ProgramData 中?

[我在 2 个月前提交了这个问题,但没有任何回复......显然问题仍然存在,我们即将发布我们应用程序的新版本,所以现在正在编写一些文档让用户删除虚拟商店中的任何条目-我不想做的事情....所以现在真的希望有人可以帮助我们吗?!]

我很感激有很多关于这个主题的信息,但我仍然有一个烦人的问题,不知道该去哪里......因此来到这里!

我们有一个应用程序 (VB.NET) 现在将 REPORT 文件安装到 ProgramData 下的文件夹中。现在我们的应用程序 dll 是从第三方应用程序(我们显然无法控制)运行的,这个第三方应用程序允许人们运行报告;但是当运行报告时,它会更新报告,以便存储它的“上次运行日期”。这就是给我们带来乐趣的原因。

启用 UAC 后,报告文件将被复制到虚拟存储中的等效位置。当他们使用我们应用程序的当前版本时,这当然没问题,但是当我们发布新版本(带有修改后的报告)时,这些新版本会正确安装到 ProgramData 中,但是当用户运行应用程序时 - 他们会看到来自虚拟商店的过时报告。

我们非常接近编写一些安装文档,告诉人们在安装我们的新版本之前从虚拟商店中删除任何报告 - 但这是一个真正的逃避!

第三方应用程序还安装了自己的报告(安装到 ProgramData 下的不同位置),并且他们能够在不启动虚拟商店的情况下更新他们的报告 - 所以我们知道这是可能的!

我刚刚在我们的 dll 中添加了一个清单:

希望这是治愈方法,但可惜没有!

所以,我愿意接受你们可能有的任何建议?!?

干杯,

克里斯。

0 投票
1 回答
3635 浏览

windows-7 - 如何将文件复制到 CommonAppDataFolder?

在 WiX 我有

但文件被复制到 C:\Users\username\AppData\Roaming\Datas\ 而不是 %ProgramData%\Manufacturer\ProductName\Datas\

0 投票
2 回答
1628 浏览

wix - 无法覆盖 MSI 安装的 ProgramData\myApp 中的文件

我即将创建一个 MSI 包。在安装过程中(例如通过双击 MSI 启动),包含在 MSI 中的一些文件更深地存放在 c:\ProgramData(分别是 CommonAppDataFolder)下,例如 c:\ProgramData\myCompany\myApplication。稍后当用户运行已安装的应用程序时,应用程序可能需要修改这些文件。问题是正在运行的应用程序和用户(例如通过 Windows 资源管理器)都无权修改安装期间创建的 c:\ProgramData\myCompany\myApplication 下的任何文件。这些文件没有只读属性集。

现在对我来说奇怪的是:如果我通过 msiexec /q /i 安装 MSI,那么我对这些文件具有写权限。

我的 MSI 是用 WiX 创建的,我的操作系统是 Win 7,用户是管理员组的成员。

谁能告诉我为什么会这样,以及我如何获得对这些文件的写权限而无需使用 /q /i?

谢谢简

编辑 2014-03-24:该死的。我错过了在我的元素上指定 InstallPrivileges 属性,我只是不知道。将其设置为“受限”不会在安装到 ProgramData 时显示 UAC 提示!现在允许用户/我的应用程序覆盖目标文件夹中的文件:)

0 投票
2 回答
23839 浏览

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

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

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

我的问题是:

它是否存在类似 的系统Path.GetDirectoryName(Application.UserAppDataPath),它会根据我的应用程序名称和版本为我提供要写入的确切文件夹?

或者ProgramData不适合这样做。

谢谢。

0 投票
1 回答
157 浏览

c - 区分大小写的文件重命名不起作用

以下程序在 Windows 7 上使用 Visual Studio 2010 编译时不起作用:

第一次重命名有效,但第二次重命名无效。rename 函数在这两种情况下都返回 0。c:\ProgramData 有什么特别之处可以使区分大小写的重命名不起作用?

仅供参考,该程序在使用 cygwin gcc 4.8.3 编译时运行良好。

0 投票
0 回答
641 浏览

vb.net - 程序数据。拒绝访问 (VB.NET 2008)

我将 .dat 文件存储在ProgramData中,以编写和读取有关我的软件的配置。我会读,但我不会写。安装软件时会复制这些 .dat 文件。安装程序是使用 AwInstall 创建的。

编写.DAT的代码:

错误: 我收到此错误:

更新 1:

好的,这个目录 ProgramData 有问题,正如 Hans Passant 所说

但是可以使用替代路径来存储数据,并且任何用户(管理员或非管理员)都可以读取和写入这些文件?

0 投票
1 回答
4759 浏览

c# - Environment.SpecialFolder.CommonApplicationData 返回 Program Files/App 文件夹

我开发了 WPF 应用程序(.NET 4.5),它在 CommonApplicationData 文件夹中存储了一些配置文件。

为此,我正在使用以下内容:

此外,我将公司名称/产品文件夹附加到该路径,并且 99.9% 一切正常。应用程序能够在那里写入配置并读取它。应用程序主要用于 Win7 和 Win8 机器,但我从客户端收到报告说一台机器出现了一些错误(Windows 7 Pro、.Net 4.5)。

当我尝试调试问题时,我在日志中发现以下问题:

System.IO.DirectoryNotFoundException:找不到路径“C:\Program Files (x86)\CompanyName\App\X\Y\Z\settings.config”的一部分。

在哪里

X\Y\Z\settings.config

应该是其中的一部分,C:\ProgramData但不知何故,应用程序正在返回安装应用程序的文件夹(程序文件)。我试图在多台机器和环境上复制它,但没有运气。

我的问题:

是否可以更改Windows 中的Environment.SpecialFolder.CommonApplicationData位置?这是一些安全问题(组策略)吗?也许有人以某种方式改变了路径。

我不知道为什么在这种情况下应用程序返回的文件夹不同于C:\ProgramData

如果有可能我可以检查Environment.SpecialFolder.CommonApplicationData除编程之外的价值是什么?

有什么建议或解决方案吗?

我总是可以做一些 if 检查并尝试查看路径是否错误,而不是手动更正它,但这样做听起来并不好。

我一直认为 usingEnvironment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)会给我独立于操作系统版本的正确文件夹。

我尝试以完全管理员权限运行应用程序(加上以管理员身份运行),问题是一样的。应用程序从Environment.SpecialFolder.CommonApplicationData.

先感谢您!

0 投票
1 回答
291 浏览

javascript - 写入 ProgramData 文件夹中的数据库

我正在制作一个 Firefox 扩展,它允许我写入数据库,然后由 ac# 程序访问。我发现这是两个人最简单的交流方式。现在我需要将数据库驻留在 programdata 文件夹中,以便在客户端 PC 上安装时一切正常。我不知道该怎么做。我知道 c# 很简单,但我不知道 javascript 怎么做。

0 投票
0 回答
506 浏览

permissions - 安装期间使用 SYSTEM 帐户写入 ProgramData 的问题

我正在尝试安装一个应用程序(使用 SYSTEM 帐户),该应用程序通过在其中创建一个新文件夹来在 ProgramData 文件夹中安装一些证书。安装在尝试安装这些证书的阶段失败。

在证书安装过程中,它所做的只是在 ProgramData 中创建一个文件夹并将文件写入其中。

我已向 ProgramData 文件夹上的 SYSTEM 用户授予 FULL CONTROL 权限,并将其传递给子文件夹。

我尝试使用 PSexec 工具执行 .exe 文件(这可以使用 SYSTEM 帐户)。我从开始使用以管理员身份运行的命令提示符打开了 PSexec 工具。

我还尝试提取 .msi 文件并使用具有 Elevated Privileges 的 TaskScheduler 运行它。

我还手动创建了应在安装期间创建的文件夹(以防它们不存在),并为 SYSTEM 用户授予了 FULL CONTROL 权限。我使用管理员帐户和 SYSTEM 帐户创建了文件夹。安装仍然没有成功。

该应用程序是 32 位应用程序。因此,我尝试将其安装在 32 位 Windows 中。它仍然失败。

我认为根本原因是 SYSTEM 帐户没有在 ProgramData 文件夹中创建文件夹/文件的权限。

我在这里缺少什么吗?

0 投票
2 回答
8942 浏览

installation - 使用 WIX 安装程序在 C:\ProgramData 中创建文件夹,并在该文件夹中部署一些配置文件

我尝试使用以下代码,但安装时未创建 ProgramData 文件夹。我的要求是在用户提供的安装目录中安装一些文件,并在 ProgramData 文件夹(C:\ProgramData\COMPANYNAME\APPNAME)中部署一些配置文件。代码如下。谁能帮我确定问题?或实现此目的的另一种解决方案。