【问题标题】:Scan folder size when some are "Access Denied"? [duplicate]某些“拒绝访问”时扫描文件夹大小? [复制]
【发布时间】:2016-05-30 11:00:38
【问题描述】:

我想创建一个程序来查找我的服务器上的文件夹大小,但是...

我有几个我无法访问的文件夹(fx 漫游用户配置文件 - 在服务器上),作为管理员是否可以获取这些文件夹的大小?

我想既然备份系统可以访问这些文件夹,那我也应该……不知何故。

编辑:

我看到有人将我的问题标记为重复,但是..

  1. 模拟如何帮助我?使用模拟,我以另一个用户身份运行该进程,但我应该以哪个用户身份运行它,以获取服务器(文件夹)上所有用户配置文件的文件夹大小?

  2. 已经尝试过在 cmets 中提升 UAC,但没有效果。仍然被拒绝访问。

所以我仍然没有找到我的问题的解决方案。

【问题讨论】:

  • @stuartd 我尝试将清单更改为 ... ... 仍然得到“拒绝访问”。
  • 听起来您正在尝试使用本地管理员,但本地管理员没有远程计算机上的权限。在这种情况下,您应该考虑模仿:stackoverflow.com/questions/125341/…
  • Mojo,我认为您正在接近一个非重复的问题。也许发布一个新问题,说明您的问题:您需要访问当前机器管理员无权访问的远程机器上的文件夹。我的想法是你想在远程机器上冒充管理员,但如果不是这样,那么你有一个新问题。

标签: c# vb.net


【解决方案1】:

如果你想在失败后继续下一个文件夹,那么是的;你必须自己做。我会推荐一个 Stack(深度优先)或 Queue(bredth 优先)而不是递归,以及一个迭代器块(yield return);那么您可以避免堆栈溢出和内存使用问题。

public static IEnumerable<string> GetFiles(string root, string searchPattern)
{
    Stack<string> pending = new Stack<string>();
    pending.Push(root);
    while (pending.Count != 0)
    {
        var path = pending.Pop();
        string[] next = null;
        try
        {
            next = Directory.GetFiles(path, searchPattern);                    
        }
        catch { }
        if(next != null && next.Length != 0)
            foreach (var file in next) yield return file;
        try
        {
            next = Directory.GetDirectories(path);
            foreach (var subdir in next) pending.Push(subdir);
        }
        catch { }
    }
}

或者你可以这样做:

您可以设置程序,使您只能以管理员身份运行。

在 Visual Studio 中:

右击项目 -> 属性 -> 安全 -> 启用 ClickOnce 安全设置

点击后,项目的属性文件夹下会创建一个名为 app.manifest 的文件,一旦创建,您可以取消选中启用 ClickOnce 安全设置选项

打开该文件并更改这一行:

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

到:

<requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

这将使程序需要管理员权限,并保证您可以访问该文件夹。

【讨论】:

  • 抱歉,但这对我没有帮助 :) 我需要获取我无法访问的文件夹的大小。
  • 不...管理员无权访问漫游用户配置文件文件夹(在服务器上)。已经尝试了我上面评论中提到的 requestedExecutionLevel ,但它没有帮助:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
  • 2017-06-24
相关资源
最近更新 更多