首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >winforms中的System.UnauthorizedAccessException C#

winforms中的System.UnauthorizedAccessException C#
EN

Stack Overflow用户
提问于 2012-07-16 20:17:16
回答 2查看 1.6K关注 0票数 2

问题是回收站上的System.UnauthorizedAccessException或文档和设置文件夹/文件。(VS2010 .NET 4.0 C#)

以下LINQ代码用于查询目录大小。我试过GetFiles和EnumerateFiles。我绝对是以管理员的身份运行。在注释的代码中,您可以看到我尝试从另一个Stack post中测试一些属性,但没有成功。

代码语言:javascript
复制
DirectorySize(new DirectoryInfo(@"C:\\"),true);

public static long DirectorySize(DirectoryInfo dInfo, bool includeSubDir)
{
    // Enumerate all the files
    long totalSize = dInfo.EnumerateFiles().Sum(file => file.Length);
        //.Where(d => (d.Attributes & FileAttributes.ReparsePoint) == 0 && (d.Attributes & FileAttributes.System) == 0)
        //.Sum(file => file.Length);

    if (includeSubDir) // Subdirs?
    {
        // Enumerate all sub-directories
        totalSize += dInfo.EnumerateDirectories().Sum(dir => DirectorySize(dir, true));
            //.Where(d => (d.Attributes & FileAttributes.ReparsePoint) == 0 && (d.Attributes & FileAttributes.System) == 0)
            //.Sum(dir => DirectorySize(dir, true));
    }
    return totalSize;
}

我想得到一个简洁的LINQ方法,在这里我不需要手动循环和测试每个文件夹/dir。我找到了一些类似操作的副本的MS代码。它也犯了同样的错误。

我提前感谢你,

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-16 20:29:11

try/catch来拯救,如下列条款所示。还有替代方案

票数 0
EN

Stack Overflow用户

发布于 2012-07-16 20:30:23

堆栈溢出中还有对此的其他引用;但您可能需要为应用程序本身定义权限。定烫

还有一个小块C:\Users是一个连接;C#: Access to path <'filepath'> is denied

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11511881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档