繁体   English   中英

在Windows 7 / Vista中删除程序文件下的文件/文件夹

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM