删除Windows 7 / Vista中Program Files下的文件/文件夹

时间:2009-11-06 15:43:13

标签: c# .net windows windows-7 windows-vista

我们正在重写我们的应用以使其符合Windows Vista / 7标准。为此,我需要删除%PROGRAMFILES%下的应用程序目录中的所有先前数据。这肯定不会在用户模式下工作,也不会在管理模式下以编程方式工作。我正在尝试使用以下代码行:

File.Delete(filePath);

有没有办法编写代码来删除用户和管理员模式的文件?接下来,我们将所有数据存储在%ALLUSERSPROFILE%目录下,但在此之前,我需要编写迁移代码来为用户处理此问题。

2 个答案:

答案 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;
        }