Jmouse.JFiles 类

来源:互联网 发布:淘宝直播账号怎么申请 编辑:程序博客网 时间:2024/06/06 19:52
Jmouse.JFiles
空间名称:
Jmouse
类:JFiles
成员:JSearchOptions, JPatternOptions
方法:SetDirMethod, SetFileMethod, SetErrorMethod (+2 次重载), Search (+4 次重载)

此类是针对于 Directory 类的 GetFilesGetDirectories 方法的一种完善。
当我们在使用 Directory 类的  GetFilesGetDirectories 方法时,如果使用了 SearchOption.AllDirectories 来搜索子目录,则当 path 参数为卷时会出现“在 System.UnauthorizedAccessException 中第一次偶然出现的“mscorlib.dll”类型的异常”的 UnauthorizedAccessException 异常,这是因为当程序试图访问卷下的 System Volume Information 及其它无权访问的文件夹时发生了权限错误,而使用 Jmouse.JFiles 在对文件进行搜索时避开了该问题,并且程序员可以使用 SetErrorMethod 方法对异常进行自定义处理。

在 Jmouse.JFiles 中的成员:
JSearchOptions 设置搜索范围 JPatternOptions 当使用 searchPattern 查找特定文件时,决定 searchPattern 的适用范围





在 Jmouse.JFiles 中的方法:
SetDirMethod 需要重写,此方法可以得到并处理所有文件夹的绝对路径 SetFileMethod 需要重写,此方法可以得到并处理所有文件的绝对路径 SetErrorMethod 需要重写,此方法可以得到并处理在搜索过程中发生的异常 (+2 次重载) Search 此方法用来搜索文件及文件夹,并返回出错文件及文件夹的个数 (+4 次重载)







*关于方法的参数和重写规则可以通过查看 Jmouse.JFiles 的源码来获取
*对于 Search 参数中的所有参数,除 JSearchOptions 和 JPatternOptions 外均与原 Directory 类中的 GetFiles 和 GetDirectories 方法的参数要求或格式相同。

示例(C#):
using System;
using
 System.Collections.Generic;
using
 System.Text;
using
 System.IO;
using Jmouse; //引用 Jmouse 空间


namespace MyConsole
{
    
class
 MyClass
    
{
        
static void Main(string
[] args)
        
{
            newJFiles clsJFiles 
= new
 newJFiles();
            
//搜索并显示所有文件及文件夹

            Console.WriteLine(" 搜索完毕,共有 {0} 个文件及文件夹在搜索中发生了错误。",
                clsJFiles.Search(
"C://"
).ToString());
            
//搜索并显示根目录下的所有文件及文件夹

            Console.WriteLine(" 搜索完毕,共有 {0} 个文件及文件夹在搜索中发生了错误。",
                clsJFiles.Search(
"C://"
,
                JFiles.JSearchOptions.OnlyTopDirectory).ToString());
            
//搜索并显示所有以 "J" 开头的文件及文件夹

            Console.WriteLine(" 搜索完毕,共有 {0} 个文件及文件夹在搜索中发生了错误。",
                clsJFiles.Search(
"C://"
,
                
"J*"
,
                JFiles.JPatternOptions.Both).ToString());
            
//搜索并显示所有根目录下以 "J" 开头的文件

            Console.WriteLine(" 搜索完毕,共有 {0} 个文件及文件夹在搜索中发生了错误。",
                clsJFiles.Search(
"C://"
,
                
"J*"
,
                JFiles.JPatternOptions.OnlyFiles,
                JFiles.JSearchOptions.OnlyTopDirectory).ToString());
            
//构建一个错误,".."是非法字符

            Console.WriteLine(" 搜索完毕,共有 {0} 个文件及文件夹在搜索中发生了错误。",
                clsJFiles.Search(
"C://"
,
                
".."
,
                JFiles.JPatternOptions.Both).ToString());
        }

    }


    
public class newJFiles : JFiles
    
{
        
/*newJFiles 派生自 Jmouse.JFiles,并重写所有方法来列出搜索到的
        文件、文件夹以及搜索中出现的错误
*/


        
protected override void SetDirMethod(string[] path)
        
{
            
if (path.Length > 0
)
            
{
                
for (int j = 0; j < path.Length; j++
)
                
{
                    Console.WriteLine(path[j]);
                }

            }

        }


        
protected override void SetFileMethod(string[] path)
        
{
            
if (path.Length > 0
)
            
{
                
for (int j = 0; j < path.Length; j++
)
                
{
                    Console.WriteLine(path[j]);
                }

            }

        }


        
protected override void SetErrorMethod(string path, 
            Exception e)
        
{
            Console.WriteLine(
" 错误:{0}"
, e.Message);
        }


        
protected override void SetErrorMethod(string path,
            
string
 searchPattern, Exception e)
        
{
            Console.WriteLine(
" 错误:{0}"
, e.Message);
            Console.WriteLine(
"这可能是由于您使用的 {0} 字符中包含了非法字符。"

                , searchPattern);
        }

    }

}

此文章适用于 Windows Vista, Windows XP, Windows 2000, Windows NT, Windows ME, Windows 98, Windows 95
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 长时间不用的手机忘记密码怎么办啊 微信忘记密码手机号又不用了怎么办 华为账号换了手机密码忘记了怎么办 用u盘制作音响喊话内容怎么办 新三板公司退市了小股东怎么办? 新三板公司退市股东股票怎么办 利群收购乐天玛特超市卡怎么办 买房过户夫妻一方是外省户口怎么办 欠了国美金融贷款没钱还会怎么办? 国企员工涨工资不在编的员工怎么办 装车牌照的螺丝孔小了怎么办 北京摇号之后中签和未中签怎么办 拉轿车的大车出车祸车怎么办 美图m6手机忘记锁屏密码怎么办 微信验证码登录收不到验证码怎么办 微信被限制登录收不到验证码怎么办 微信登录申诉收不到短信怎么办 登录微信手机收不到验证码怎么办 美图t8冲一会电就发烧怎么办 美图t8系统不小心升级了 怎么办 美图手机看相册视频就会变黑怎么办 苹果4s屏幕唤醒速度慢怎么办 美图m4换电池后不显示卡怎么办 美图手机久没充电再充没反应怎么办 美图6s开不开机怎么办 苹果4s照片不能拍照黑屏怎么办 美图手机开机键坏了怎么办 金立金刚二手机烧卡怎么办 金立金刚手机开不开机怎么办 小米4手机拆机信号不好怎么办 荣耀自带游览器无法正常打开怎么办 苹果4s电池越来越不耐用怎么办 苹果4s电池不耐用了怎么办 苹果手机4s电池不耐用怎么办 红米4s电池不耐用怎么办 32位app私密相册打不开怎么办 红米手机取卡针断手机里了怎么办 我差评了客服打电话骂我怎么办 顺丰快递在预计时间没有回来怎么办 同款商品比京东便宜怎么办 京东自营不支持7天退货怎么办