【问题标题】:Checking permission for list of path in c#在c#中检查路径列表的权限
【发布时间】:2014-04-09 06:00:58
【问题描述】:

我有一个方法可以检查给定路径的权限及其工作正常,如下所示..

public bool IsAvailable(string path)
        {
            bool hasPermissions = false;

            if (Directory.Exists(path))
            {
                var permission = new FileIOPermission(FileIOPermissionAccess.Write, path);
                try
                {
                    permission.Demand();
                    hasPermissions = true;
                }
                catch(SecurityException e)
                {
                    hasPermissions = false;
                }
            }

            return hasPermissions;
        }

现在我的问题是,我想检查路径列表的权限,我的意思是我会在方法的参数中传递路径列表,如果它具有对给出的所有路径的权限,它应该返回 true 或 false如下所示的参数

public bool IsAvailable(List<string> pathList)
{
}

有人可以帮忙吗?

【问题讨论】:

    标签: c# path


    【解决方案1】:

    重载的魔力:

    public bool IsAvailable(List<string> pathList)
    {
        return pathList.All(path => IsAvailable(path));
    }
    

    由于这两种方法有不同的签名(不同的参数意味着不同的定义),它们可以共存。这只是从新方法中为列表pathList 中的每个path 调用现有方法,检查它们是否都有有效路径。

    【讨论】:

    • 如果我在路径列表中给出 2 个路径,它只会检查第一个路径,你的代码不会检查第二个路径..为什么???
    • @Neel 如果您的第一个路径无效,则该方法足以使其失败,并返回false。如果您的所有路径都有效,这应该可以工作(并返回true)。
    • 它的工作很抱歉,我使用了 .any,因为你先写了它,然后你编辑了它,所以它发生了..thanx
    • 是的,没错——我先把它写反了,然后决定这样更清楚。很高兴有帮助! :)
    猜你喜欢
    • 2010-09-20
    • 2013-10-21
    • 2015-01-07
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    • 2018-08-31
    • 2020-06-27
    • 1970-01-01
    相关资源
    最近更新 更多