我们正在重写我们的应用以使其符合Windows Vista / 7标准。为此,我需要删除%PROGRAMFILES%下的应用程序目录中的所有先前数据。这肯定不会在用户模式下工作,也不会在管理模式下以编程方式工作。我正在尝试使用以下代码行:
File.Delete(filePath);
有没有办法编写代码来删除用户和管理员模式的文件?接下来,我们将所有数据存储在%ALLUSERSPROFILE%目录下,但在此之前,我需要编写迁移代码来为用户处理此问题。
答案 0 :(得分:1)
没有。您必须以管理员身份启动应用程序才能获得%PROGRAMFILES%的写入权限。此外,如果启用了UAC,即使以管理员身份运行,仍可能会提示您继续获得权限。
正如C-Pound Guru在对你的问题的评论中所说,你的更新安装程序(应该由管理员运行)也应该清理旧文件。
答案 1 :(得分:0)
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;
}