如何以访问_every_目录的权限运行我的应用程序

本文关键字:权限 运行 应用程序 我的 访问 every | 更新日期: 2023-09-27 17:53:08

我正在开发一个供我个人使用的小型备份应用程序,作为它的一部分,我想遍历给定磁盘上的每个目录。

我已经将我的应用程序设置为使用清单以管理员权限运行,而像GetDirectories()这样的方法现在可以进入系统文件夹,当访问Documents and Settings时,它们仍然会与UnauthorizedAccessException一起失败。

我将(不得不)过滤掉系统文件/打开文件等,当然,但现在只是生成列表,我想给它访问整个硬盘驱动器,但无论是'requireAdministrator'或'highestAvailable' requestdexecutionlevel似乎这样做;我怎样才能让它访问整个硬盘?

如何以访问_every_目录的权限运行我的应用程序

您需要有FileIOPermissionAccess。AllAccess许可。为此,您需要以管理员身份登录。如果你不能这样做,你最好的改变就是跳过这些文件夹。下面的例子来自一个类似的问题:

try
{
    Directory.GetFiles(path)
        .ToList()
        .ForEach(s => files.Add(s));
    Directory.GetDirectories(path)
        .ToList()
        .ForEach(s => AddFiles(s, files));
}
catch (UnauthorizedAccessException ex)
{
    // ok, so we are not allowed to dig into that directory. Move on.
}