Delphi 在Windows 7中从C:/ProgramData中删除文件并不会真正删除该文件?

Delphi 在Windows 7中从C:/ProgramData中删除文件并不会真正删除该文件?,delphi,windows-7,filesystems,delphi-xe,Delphi,Windows 7,Filesystems,Delphi Xe,我的申请有点问题。第一次运行时,应用程序将SQLite数据库存储在C:\ProgramData\ProgramName\文件夹中。我想测试一下,如果我删除了数据库,应用程序是否可以创建一个新的数据库。启动时,我使用SysUtils中的FileExists(filename)函数检查文件是否存在。但它总是返回True,即使我删除了ProgramName文件夹 如果我使用另一个文件夹(例如%AppData%),则一切正常 我错过了什么?为什么FileExists函数总是返回True?标准用户(包括U

我的申请有点问题。第一次运行时,应用程序将SQLite数据库存储在
C:\ProgramData\ProgramName\
文件夹中。我想测试一下,如果我删除了数据库,应用程序是否可以创建一个新的数据库。启动时,我使用SysUtils中的
FileExists(filename)
函数检查文件是否存在。但它总是返回True,即使我删除了ProgramName文件夹

如果我使用另一个文件夹(例如%AppData%),则一切正常

我错过了什么?为什么FileExists函数总是返回True?

标准用户(包括UAC处于活动状态时的管理员)没有该位置的删除权限


如果需要标准用户才能删除文件,则需要找到其他位置来存储文件。

您的程序在那里有写访问权限吗?否则您可能会点击重定向垫片。@CodeInChaos什么是重定向垫片?确定在%AppData%\Local\VirtualStore\ProgramData\ProgramName中也找到了我的虚拟化数据库文件folder@Downvoter
/
是上的有效路径分隔符Windows@evilone通过将
requestedExecutionLevel
条目包含在您的应用程序的清单。正确的位置在哪里,所有用户都可以访问该文件?@evilone是否希望所有用户共享该文件的单个实例?是的,我希望所有用户都可以访问该数据库文件我想我会将其视为一个文档,并将其定位在CSIDL_LOCAL_APPDATA下的文件夹中。APPDATA是用户特定的?