【问题标题】:Missing file from Vista ProgramData folderVista ProgramData 文件夹中缺少文件
【发布时间】:2008-12-26 11:46:08
【问题描述】:

我有一个旧版 VB6 程序,它在公共数据文件夹 (CSIDL_COMMON_APPDATA) 的子目录中安装 Access 文件。我现在已经在 64 位 Vista 系统上安装了这个程序,并且程序运行良好,并且可以访问 C:\ProgramData\Wow\WowCat.mdb 中的文件,但是这个文件没有显示在 Windows 资源管理器中。

我想用从我的旧 PC 上获取的更高版本覆盖这个数据库,但是使用资源管理器我看不到 C:\ProgramData\Wow\ 中的文件(我正在显示所有隐藏文件和系统文件)。如果我继续复制新的 WowCat.mdb,程序仍然可以使用旧的。

在 VB 中单步执行代码,它肯定是在以下位置打开文件:C:\ProgramData\Wow\WowCat.mdb。搜索 C: 驱动器只显示新副本,那么程序正在访问的那个在哪里?

【问题讨论】:

    标签: vb6 windows-vista vista64 programdata


    【解决方案1】:

    这是因为 Windows Vista 中的文件夹重定向。如果您通常无权将某些内容写入 C:\Program Files 文件夹,Vista 会默默地将这些写入重定向到您用户目录中的“秘密”文件夹中。该文件对于创建该文件的用户(以及以该用户身份运行的任何程序)仍然可见,但对其他人不可见。因此,您的程序可能以不同于 Explorer 的用户身份运行,因此 Explorer 看不到它。

    在我的 Vista 64 位机器上查看 dir /aL 的以下输出:

    C:\ProgramData>dir /aL
     Volume in drive C has no label.
     Volume Serial Number is 74DB-58F8
    
     Directory of C:\ProgramData
    
    02.11.2006  16:41    <JUNCTION>     Application Data [C:\ProgramData]
    02.11.2006  16:41    <JUNCTION>     Desktop [C:\Users\Public\Desktop]
    02.11.2006  16:41    <JUNCTION>     Documents [C:\Users\Public\Documents]
    02.11.2006  16:41    <JUNCTION>     Favorites [C:\Users\Public\Favorites]
    02.11.2006  16:41    <JUNCTION>     Start Menu [C:\ProgramData\Microsoft\Windows\Start Menu]
    02.11.2006  16:41    <JUNCTION>     Templates [C:\ProgramData\Microsoft\Windows\Templates]
                   0 File(s)              0 bytes
                   6 Dir(s)  62 040 051 712 bytes free
    

    此功能称为重解析点或交汇点,具体取决于您在何处了解它们。它们与 Unix 中的符号链接非常相​​似。

    【讨论】:

      【解决方案2】:

      正确执行此操作需要运行提升的 Windows 安装程序 MSI 或旧版安装程序,在 CommonAppDataFolder 下创建一个子文件夹,让所有人(或适当的组)完全控制此文件夹,最后将您的 MDB 放在那里。您还可以创建文件夹,将 MDB 文件移到那里,然后只设置文件的权限。

      如果 EXE 本身运行提升或检测到遗漏并产生提升的进程来完成工作,则 EXE 本身也可能在第一次运行时执行此操作。标准规定,此操作应通过显示 UAC Shield 图标的菜单项或按钮启动,而不仅仅是弹出 UAC 提示。

      不过,通过 MSI 包,这一切都容易得多。

      【讨论】:

        猜你喜欢
        • 2011-01-22
        • 1970-01-01
        • 2021-08-30
        • 2018-12-26
        • 2014-09-20
        • 2019-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多