zoukankan      html  css  js  c++  java
  • GetDirectories 出错的解决方法

    我想找到D盘里面所有 "*.pst文件,类似 windows 下的磁盘搜索功能,

    using System.IO;

    Directory.GetFiles(@"d:", "*.pst", SearchOption.AllDirectories)

    测试环境为win7 提示说 某某目录没有访问权限。

    获得文件属性   File.GetAttributes(dir.FullName).ToString()   没有权限访问的将会有  System  、Hidden属性。

    于是想到是否可以通过属性来过滤这些文件,因此想到了用递归的思想去遍历所有文件。

    还好,在网上居然找到了这个。

    http://support.microsoft.com/kb/303974/zh-cn

    using System.IO;

    using System.Collections;

            ArrayList Alist = new ArrayList();
            void DirSearch(string sDir)
            {
                try
                {
                    foreach (string d in Directory.GetDirectories(sDir))
                    {
                        foreach (string f in Directory.GetFiles(d, "*.pst"))
                        {
                            Alist.Add(f);
                        }
                        DirSearch(d);
                    }
                }
                catch (System.Exception excpt)
                {
                    Console.WriteLine(excpt.Message);
                }
            }

     GetFileTime("D:\");

    通过递归和直接 找所有的文件,两者都有异常, 区别在于前者的异常,就抛出某个节点的异常,  Alist.Add(f); 不会执行,(这里是递归循环哦)循环继续,后者是遇到异常,则赋值操作不能执行,返回null.

    也可以通过GetAttributes 来判断,原理类似。

  • 相关阅读:
    常用的IDEA快捷键
    异步任务 & 定时任务 & 邮件任务
    Swagger
    路由钩子&异步请求axios
    vue-参数绑定及重定向
    Spring事务的传播机制
    使用mybatis的BaseTypeHandler来给敏感字段进行AES加密
    SpringBoot2.0.3.RELEASE+sharding-jdbc4.1.0+mybatis-plus3.4.1+druid1.1.22 快速搭建分库分表
    使用SpringCloudStream整合RabbitMQ
    获取汉字首字母
  • 原文地址:https://www.cnblogs.com/bingguang/p/3706098.html
Copyright © 2011-2022 走看看