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 来判断,原理类似。

  • 相关阅读:
    Hanoi塔问题
    《OD学hive》第六周20160731
    《OD学Hive》第六周20160730
    《OD学Sqoop》数据转换工具Sqoop
    《OD学hive》第五周0723
    《OD学hive》第四周0717
    《OD学hadoop》第四周0716
    hadoop环境搭建笔记
    《OD学hadoop》第三周0710
    《OD学hadoop》第三周0709
  • 原文地址:https://www.cnblogs.com/bingguang/p/3706098.html
Copyright © 2011-2022 走看看