标签: programdata

ProgramData和AppData有什么区别?

我需要为我的程序存储一些特定于用户的配置数据.Application Data/AppData(在用户的目录中)和ProgramData(在系统驱动器的根目录中)似乎是合理的放置它的地方.

程序数据和应用程序数据之间有什么区别,我应该使用哪些?

programdata appdata windows-7

56
推荐指数
2
解决办法
3万
查看次数

Windows中ProgramData文件夹的重要性是什么?

ProgramDataWindows中文件夹的重要性是什么?

我注意到许多已安装的程序将文件存储在该ProgramData文件夹的子目录中.有具体原因吗?

我必须为我的应用程序创建一个安装程序.我应该将用户级文件存储在ProgramData或低于Users

windows programdata

54
推荐指数
1
解决办法
6万
查看次数

写入"ProgramData"文件夹(W7和Vista).NET

我在"Program Files"目录下安装我的应用程序.我在"ProgramData"目录下安装数据:

Environment.SpecialFolder.CommonApplicationData

在programData中,我创建了用于保存数据的文件夹.例:

C:\ ProgramData\MyApp\MyData\here我有文件和文件夹

在XP下运行良好.但不是在Vista或W7 OS下.

我可以读取此目录中的文件,但我无法写入文件,我无法创建新文件等.用户被记录为管理员.

我可以无限制地存储数据?我需要将商店数据存储在所有用户都可见的文件夹中

编辑:

我在app.manifest文件中有这个代码:

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!-- Opciones del manifiesto de Control de cuentas de usuario
             Si desea cambiar el nivel de Control de cuentas de usuario de Windows, reemplace el 
             nodo requestedExecutionLevel por alguno de los siguientes.

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

            Si desea utilizar la virtualización de archivos …
Run Code Online (Sandbox Code Playgroud)

.net uac programdata windows-vista

16
推荐指数
2
解决办法
2万
查看次数

Vista和ProgramData

存储程序数据文件的正确位置是什么,这些文件对于每个用户都是相同的但是必须可以为程序写入?MS Windows XP上的等效位置是什么?我已经读过普通用户安装后C:\ ProgramData不可写.真的吗?如何使用Platform SDK以编程方式检索该目录?

directory shared programdata windows-vista

15
推荐指数
2
解决办法
9807
查看次数

Win32函数获取C:\ ProgramData的路径

我的应用程序需要安装一些可以在运行时由应用程序编辑的文件.安装shield提供了一个别名[CommonAppDataFolder],它将在Vista和Windows 7上解析为c:\ programData,也可以在Windows XP上运行.是否有返回类似路径的win32函数?

也许我需要根据操作系统调用不同的功能?

winapi path programdata

14
推荐指数
1
解决办法
2万
查看次数

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

我需要读取和写入包含所有用户共享的特定于应用程序的数据的文件.

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

我的问题是:

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

或者ProgramData不是正确的选择.

谢谢.

c# programdata appdata winforms

9
推荐指数
2
解决办法
2万
查看次数

Nullsoft安装程序,如何使ProgramData子文件夹可写

ProgramData文件夹是存储所有用户共享的应用程序可写文件的最佳位置.但是当Nsis安装程序以管理员权限(需要写入Program Files)运行时,在ProgramData文件夹中创建的文件夹和文件只对除admin以外的所有用户都是只读的.如何更改它并为ProgramData文件夹中的所有用户提供可写文件?

nsis programdata windows-vista windows-7

8
推荐指数
1
解决办法
8064
查看次数

既然 Storage Sense 可以随时清理 %TEMP% 文件夹,为什么还要使用它呢?

从 Windows 10 开始,Storage Sense 允许用户指定%TEMP%文件夹清理频率为每天一次。从技术上讲,如果将其设置为在磁盘空间不足时激活,它可以更频繁地运行,具体取决于用户的磁盘使用模式。

鉴于此,这样做的意义何在?%TEMP%文件夹的意义何在?我如何使用一个文件夹,让我放在那里的每个文件在技术上可以在我完成写入后立即被系统删除?

这是一个真实的场景,这让我印象深刻(为简洁起见,简化了代码):

var ffmpegPath = Path.Combine(Path.GetTempPath(), "ffmpeg");
DownloadFfmpeg(path: ffmpegPath); 

foreach (var videoFile in videoFiles) { //suppose there are dozens of files to process
   DoSomeHeavyProcessing(ffmpegPath);   //suppose each file takes an hour to process
}
Run Code Online (Sandbox Code Playgroud)

这在最初的几个小时内效果很好,但随后在某个任意时间点,下载的ffmpeg文件夹被删除,并且无法处理所有后续文件。事实上,如果我理解正确的话,理论上即使是这样的代码也可能会失败:

var path = Path.Combine(Path.GetTempPath(), "foo");
File.WriteAllText(path, "bar");
Console.WriteLine(File.ReadAllText(path));
Run Code Online (Sandbox Code Playgroud)

现在,我知道如何解决这个问题 - 只需使用%APPDATA%,%LOCALAPPDATA%%PROGRAMDATA%。但这就是重点 - 自从 Storage Sense 出现以来,为什么我会使用%TEMP%而不是以前的文件夹?

programdata temp appdata windows-10

6
推荐指数
1
解决办法
2291
查看次数

Windows安装程序中的常见应用程序数据路

当我搜索时,Windows分区中有一个名为"ProgramData"的文件夹,其中包含应用程序在运行时使用的应用程序数据.由于此文件夹不需要管理员权限,并且在系统用户之间很常见,因此它是放置运行时文件的最佳位置.在C#.Net中,我通过以下代码到达此文件夹地址:

Application.CommonAppDataPath
Run Code Online (Sandbox Code Playgroud)

问题是,当我通过Visual Studio安装项目创建Windows安装程序(msi文件)时,找不到正确的文件夹来放入我的数据.我想知道如何将此文件夹添加到我的安装项目中.

问候.

.net c# windows-installer programdata

5
推荐指数
1
解决办法
6549
查看次数

如何将文件复制到CommonAppDataFolder?

在WiX中,我有

<Directory Id="CommonAppDataFolder">
    <Directory Id="CommonAppDataManufacturerFolder" Name="$(var.MANUFACTURER)">
        <Directory Id="AppDataFolder" Name="$(var.PRODUCTNAME)">
            <Directory Id="DatasFolder" Name="Datas"/>
        </Directory>
    </Directory>
</Directory>
Run Code Online (Sandbox Code Playgroud)

<ComponentGroup Id="DatasComponents" Directory="DatasFolder">
    <Component Id="Database.sdf" Guid="4c33c78e-7113-4a8c-b9fd-6ba4f6490935">
        <File Id="Database.sdf" Source="Database.sdf" />
        <RemoveFolder Id='DatasFolder' On='uninstall' />
        <RegistryValue Root='HKCU'
                        Key='Software\[Manufacturer]\[ProductName]'
                        Type='string'
                        Value=''
                        KeyPath='yes' />
    </Component>
</ComponentGroup>
Run Code Online (Sandbox Code Playgroud)

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

wix programdata windows-7

5
推荐指数
1
解决办法
3167
查看次数