![](/img/trans.png)
[英]WIX: delete permanent files with a custom action under program files on Windows 7?
[英]Delete Files/Folders under Program Files in Windows 7 / Vista
我们正在重写我们的应用程序,使其兼容Windows Vista / 7。 为此,我需要删除%PROGRAMFILES%下的应用程序目录中的所有先前数据。 这绝对不能在用户模式下使用,也不能在管理员模式下以编程方式工作。 我正在尝试使用以下代码行:
File.Delete(filePath);
有没有一种方法可以在用户和管理员模式下编写代码来删除文件? 展望未来,我们会将所有数据存储在%ALLUSERSPROFILE%目录下,但是在此之前,我需要编写迁移代码来为用户处理此数据。
不能。您必须以管理员身份启动应用程序才能获得对%PROGRAMFILES%的写入权限。 此外,如果打开了UAC,即使以管理员身份运行时,仍然可能会提示您继续操作的权限。
正如C-Pound Guru在对您的问题的评论中所说的那样,您的更新安装程序(应由管理员运行)也应该清除旧文件。
if(System.IO.File.Exists(@"C:\Users\Public\DeleteTest\test.txt"))
{
// Use a try block to catch IOExceptions, to
// handle the case of the file already being
// opened by another process.
try
{
System.IO.File.Delete(@"C:\Users\Public\DeleteTest\test.txt");
}
catch (System.IO.IOException e)
{
Console.WriteLine(e.Message);
return;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.