访问路径“d:\$RECYCLE.BIN\S-1-5-21-494745725-312220573-749543506-41600”被拒绝

2023-12-08

我是 C# 新手。我有一个文本框,可以在其中输入要搜索的文件和一个“搜索”按钮。在搜索时钟上,我希望它填充文件夹中的文件,但出现上述错误。下面是我的代码:

string[] directories = Directory.GetDirectories(@"d:\",
                                              "*",
                                              SearchOption.AllDirectories);
string file = textBox1.Text;
DataGrid dg = new DataGrid();

{
    var files = new List<string>();
     foreach (DriveInfo d in DriveInfo.GetDrives().Where(x => x.IsReady))
        {
        try
        {
            files.AddRange(Directory.GetFiles(d.RootDirectory.FullName,  file , SearchOption.AllDirectories));
        }
        catch(Exception ex)
        {
            MessageBox.Show("the  exception is " + ex.ToString());
            //Logger.Log(e.Message); // Log it and move on
        }
}

请帮我解决它。谢谢


最重要的规则在搜索可能包含的文件夹时难以接近的子文件夹是:

Do NOT use SearchOption.AllDirectories!

Use SearchOption.TopDirectoryOnly相反,结合递归搜索对于所有可访问的目录。

Using SearchOption.AllDirectories, one即使在处理任何文件/目录之前,访问冲突也会破坏整个循环。但如果你使用SearchOption.TopDirectoryOnly,您只会跳过无法访问的内容。

还有更难使用的方法Directory.GetAccessControl()每个子目录检查您是否可以事先访问目录(尽管这个选项相当困难 - 我真的不推荐这样做,除非您确切地知道访问系统是如何工作的)。

对于递归搜索,我实现了以下代码供我自己使用:

public static List<string> GetAllAccessibleDirectories(string path, string searchPattern) {
    List<string> dirPathList = new List<string>();
    try {
        List<string> childDirPathList = Directory.GetDirectories(path, searchPattern, SearchOption.TopDirectoryOnly).ToList(); //use TopDirectoryOnly
        if (childDirPathList == null || childDirPathList.Count <= 0) //this directory has no child
            return null;
        foreach (string childDirPath in childDirPathList) { //foreach child directory, do recursive search
            dirPathList.Add(childDirPath); //add the path
            List<string> grandChildDirPath = GetAllAccessibleDirectories(childDirPath, searchPattern);
            if (grandChildDirPath != null && grandChildDirPath.Count > 0) //this child directory has children and nothing has gone wrong
                dirPathList.AddRange(grandChildDirPath.ToArray()); //add the grandchildren to the list
        }
        return dirPathList; //return the whole list found at this level
    } catch {
        return null; //something has gone wrong, return null
    }
}

这就是你所说的

List<string> accessibleDirs = GetAllAccessibleDirectories(myrootpath, "*");

然后,您只需在所有文件中搜索/添加文件即可无障碍目录。

注:这个问题很古典尽管。我相信还有其他一些更好的解决方案。

如果在获取所有可访问目录后,您特别想要避免某些目录,您还可以过滤这些目录ListLINQ 使用目录名称的一部分作为关键字(即Recycle.Bins).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

访问路径“d:\$RECYCLE.BIN\S-1-5-21-494745725-312220573-749543506-41600”被拒绝 的相关文章

  • Qt - QProcess 不工作

    我尝试启动 Internet Explorer 所以我使用下面的代码 QProcess process new QProcess this QString temp C Program Files Internet Explorer iex
  • Rx.NET 中是否有一个Subject 实现,其功能类似于BehaviourSubject,但仅在值发生更改时才发出?

    有没有Subject https learn microsoft com en us previous versions dotnet reactive extensions hh229699 v vs 103 Rx NET 中的实现在功能
  • 如何在类文件中使用 Url.Action() ?

    如何在 MVC 项目的类文件中使用 Url Action Like namespace 3harf public class myFunction public static void CheckUserAdminPanelPermissi
  • 当事件button.click发生时,如何获取按钮名称/标签?

    我以编程方式制作按钮并将它们添加到堆栈面板中 以便每次用户导航到页面时按钮都会发生变化 我正在尝试做这样的事情 当我单击创建的按钮时 它将获取按钮的标签并转到正确的页面 但是 我无法使用 RoutedEventHandler 访问按钮元素
  • 如何将 SOLID 原则应用到现有项目中

    我对这个问题的主观性表示歉意 但我有点卡住了 我希望之前处理过这个问题的人能够提供一些指导和建议 我有 现在已经成为 一个用 C 2 0 编写的非常大的 RESTful API 项目 并且我的一些类已经变得巨大 我的主要 API 类就是一个
  • 强制初始化模板类的静态数据成员

    关于模板类的静态数据成员未初始化存在一些问题 不幸的是 这些都没有能够帮助我解决我的具体问题的答案 我有一个模板类 它有一个静态数据成员 必须为特定类型显式实例化 即必须专门化 如果不是这种情况 使用不同的模板函数应该会导致链接器错误 这是
  • cpp.react库的C++源代码中奇怪的“->* []”表达式

    这是我在文档中找到的 C 片段cpp react 库 https github com schlangster cpp react implicit parallelism auto in D MakeVar 0 auto op1 in g
  • 语音识别编程问题入门

    所以 你们可能都看过 钢铁侠 其中托尼与一个名为贾维斯的人工智能系统进行交互 演示剪辑here http www youtube com watch v Go8zsh1Ev6Y 抱歉 这是广告 我非常熟悉 C C 和 Visual Basi
  • 在 C# 中,如何根据在 gridview 行中单击的按钮引用特定产品记录

    我有一个显示产品网格视图的页面 该表内有一列 其中有一个名为 详细信息 的超链接 我想这样做 以便如果用户单击该特定产品的详细信息单元格 将打开一个新页面 提供有关该产品的更多信息 我不确定如何确定哪个Product记录链接的详细信息以及我
  • 如何在 C# Designer.cs 代码中使用常量字符串?

    如何在 designer cs 文件中引用常量字符串 一个直接的答案是在我的 cs 文件中创建一个私有字符串变量 然后编辑 Designer cs 文件以使用此变量 而不是对字符串进行硬编码 但设计者不喜欢这样抛出错误 我明白为什么这行不通
  • 不同 C++ 文件中的相同类名

    如果两个 C 文件具有相同名称的类的不同定义 那么当它们被编译和链接时 即使没有警告也会抛出一些东西 例如 a cc class Student public std string foo return A void foo a Stude
  • C++中判断unicode字符是全角还是半角

    我正在编写一个终端 控制台 应用程序 该应用程序应该包装任意 unicode 文本 终端通常使用等宽 固定宽度 字体 因此要换行文本 只需计算字符数并观察单词是否适合一行并采取相应的操作 问题是 Unicode 表中的全角字符在终端中占用了
  • 如何使用 x64 运行 cl?

    我遇到了和这里同样的问题致命错误 C1034 windows h 未设置包含路径 https stackoverflow com questions 931652 fatal error c1034 windows h no include
  • 如何将AVFrame转换为glTexImage2D使用的纹理?

    如您所知 AVFrame 有 2 个属性 pFrame gt data pFrame gt linesize 当我从视频 sdcard test mp4 android平台 读取帧后 并将其转换为RGB AVFrame副 img conve
  • 如何最好地以编程方式将 `__attribute__ ((unused))` 应用于这些自动生成的对象?

    In my makefile我有以下目标 它将文本 HTML 资源 编译 为unsigned char数组使用xxd i http linuxcommand org man pages xxd1 html 我将结果包装在匿名命名空间和标头保
  • 如何在 C# 中创建异步方法?

    我读过的每一篇博客文章都会告诉您如何在 C 中使用异步方法 但由于某些奇怪的原因 从未解释如何构建您自己的异步方法来使用 所以我现在有这段代码使用我的方法 private async void button1 Click object se
  • Visual Studio 2015 - Web 项目上缺少共享项目参考选项卡

    我从 MSDN 订阅升级到 Visual Studio 2015 因为我非常兴奋地阅读有关共享项目的信息 当我们想要做的只是重用代码时 不再需要在依赖项中管理 21382 个 nuget 包 所以我构建了一个测试共享项目 其中包含一些代码
  • 了解 Lambda 表达式和委托 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经尝试解决这个问题很长一段时间了 阅读在线博客和文章 但到目前为止还没有成功 什么是代表 什么是 Lambda 表达式 两者的优点
  • 没有“对 *this”功能的右值引用的解决方法

    我有一个围绕可移动对象的代理容器类 并希望代理能够隐式生成对底层对象的右值引用 但仅当代理本身被移动时 我相信我将能够按照提案 n2439 实施此行为 将移动语义扩展到 this http www open std org jtc1 sc2
  • 如何在 sql azure 上运行 aspnet_regsql? [复制]

    这个问题在这里已经有答案了 可能的重复 将 ASP NET 成员资格数据库迁移到 SQL Azure https stackoverflow com questions 10140774 migrating asp net membersh

随机推荐

  • 如何使用 Nokogiri 在 NodeSet 中添加子节点

    我正在尝试在根节点下添加子节点 我尝试使用以下 XML 但它不起作用 builder Nokogiri XML Builder with doc do xml nodes Nokogiri XML NodeSet new doc each
  • 剑道图表呼出消息

    我有一个剑道折线图 它将绑定来自模型的数据 如下所示 现在我想在特定点显示一条调出消息 说明此时动态地开始降级 有人可以帮我解决如何实现这一目标吗 div style width 100 if Model null Model XYAxis
  • 从 SQL 中提取数据并写入文本文件

    我正在尝试从 SQL 中提取数据 然后将其写入文本文件 这在一定程度上做到了 但它只从表中取出 1 即test test br 在文本文件上 我希望能够提取所有数据 从表中 然后发布到 列表格式的文本文件 例如 这 test test te
  • 如何在 Vim 中将光标移动到另一个窗口后自动关闭预览窗口?

    我希望当光标不在预览窗口中或预览窗口失去焦点时预览窗口自动消失 是否可以 您可能想看看自动命令 一个简单的例子是 autocmd WinLeave pc 哪个调用pc 关闭预览窗口 每次离开窗口时 一个更复杂的示例可以使用一个单独的函数来执
  • 无 NIB、UIWindow 未填满屏幕、iOS 7

    我完全避免使用 NIB 我在 iOS 7 1 上遇到问题 但在 iOS 8 x 上没有 iOS 7 与 iOS 8 代码如下所示UIResponder
  • 使用 Delphi XE 将通过 WinHTTP 下载的文件保存到磁盘

    一个答案这个问题展示了通过 Delphi 中的类型库导入来使用 WinHTTP 是多么容易 我导入了 WinHTTP 的类型库 然后尝试使用该 api 编写文件下载帮助器函数 这是我走了多远 我似乎不知道如何将 IWinHttpReques
  • UIPageViewController:视图控制器之间的淡入/淡出动画?

    我按照 的教程进行操作http www appcoda com uipageviewcontroller storyboard tutorial 实现 UIPageViewController 当用户在视图控制器之间滚动时 我需要在视图控制
  • 使用 $resource 自动提供默认参数?

    我正在创建一个简单的 AngularJS 应用程序 它使用 Alfresco 作为提供的后端REST API 首先 通过返回令牌的适当服务执行身份验证 alf ticket 并且该令牌必须在成功身份验证后在后续请求中作为 URL 参数发送
  • Jquery更改位置然后滚动到元素

    当我在 index php 上并按主页按钮时 它会向下滚动到该元素 但是 当我不在 index php 上并按同一按钮时 我想更改 URL 位置 然后滚动到该元素 这就是我尝试的方法 home on click function event
  • 我的加密与 openPGP/SMIME 一样安全吗?

    我正在尝试在较大的项目中编写一个简单的文件加密 解密 由于许可证问题 我想避免使用 libgpgme openPGP 标准对于我的项目时间框架来说太复杂了 我想用 openssl 做我的加密工作 现在我已经实现了以下内容 加密 伪代码 RA
  • 是否可以使用 Xamarin 以编程方式连接到 Wi-Fi 网络?

    使用Xamarin iOS和Xamarin Android 可以检查Wi Fi是否启用 而且 如果禁用了 可以启用它吗 启用后 如何搜索并连接到网络 启用 禁用 Wi Fi WifiManager wifiManager WifiManag
  • 为什么会重复相同的随机数?

    我是 Go 新手 不知道为什么它会打印相同的数字rand Intn n int int每次运行 package main import fmt math rand func main fmt Println rand Intn 10 文档说
  • 方法的类型参数无法从用法中推断出来。尝试显式指定类型参数

    我正在尝试使用 TextChanged 事件在文本框中填充来自 SQL Server 的自动完成文本 WindowsForm C 我有部分班级表格 文本更改事件 private void textBoxFilterCName TextCha
  • JPA Criteria API 中的订单自定义 SQL

    我正在从已弃用 不幸的是 的 Hibernate Criteria API 切换到 JPA Criteria API 我们有一个自定义的 Order 来自 Hibernate 接口实现来重新定义为其生成的 SQL 这个案例非常复杂 因为我们
  • HTML5 - 从本地文件加载 Web SQL DB?

    让我们以一个很棒的演示为例here 假设我作为 管理员 创建了 5 张便签 我的浏览器有一个 SQLite DB 其中包含这 5 个便签及其各自的位置和文本 然后 我将此数据库文件导出到托管该页面的本地服务器 然后 假设另一台计算机上的 用
  • JS 数组使用正则表达式排序

    我的目标是根据使用正则表达式的 JS 对象的优先级对数组进行排序 这是我所拥有的 JS 对象定义 var rx CondoIndicator new RegExp bCONDO MINIUM S var rx TownhouseIndica
  • 调整页面大小后将可变宽度网格居中

    这是我想在 CSS 中执行的操作的图像 image 有任何想法吗 创刊号 将没有明确宽度的元素居中 这阻止了通常的解决方案margin 0 auto 从成为一种选择 更大的问题 没有未使用的空间用于将包装纸置于其容器的中心 如果元素的宽度由
  • 如何从 Facebook 应用程序获取顶部 URL?

    如何获取 iframe 应用程序中的顶级 URL Facebook 地址 对此有好的解决办法吗 您指的是 Facebook 域中的 URL 这是不可能的 因为同源政策
  • C 运行时静态链接与动态链接中的内存分配

    我的程序的架构涉及插件 dll 和exe 显然 我们是唯一的插件提供商 有人告诉我 如果我们静态链接 c 运行时 在插件中分配内存然后在 exe 代码中释放它是一个潜在的问题 但是 如果我们动态链接它 则只有一个堆 而 c 运行时可以访问所
  • 访问路径“d:\$RECYCLE.BIN\S-1-5-21-494745725-312220573-749543506-41600”被拒绝

    我是 C 新手 我有一个文本框 可以在其中输入要搜索的文件和一个 搜索 按钮 在搜索时钟上 我希望它填充文件夹中的文件 但出现上述错误 下面是我的代码 string directories Directory GetDirectories