封装原来的DirectoryInfo类,添加事件,可以代替FileSystemWatcher 类

原创 2007年09月29日 17:22:00
using System;
using System.IO;

//封装原来的DirectoryInfo类,添加事件,可以代替FileSystemWatcher 类
public class DirectoryInfoNotify
{
    public DirectoryInfoNotify(string path)
    {
        internalDirInfo = new DirectoryInfo(path);
    }
   
    private DirectoryInfo internalDirInfo = null;
    public event EventHandler AfterCreate;
    public event EventHandler AfterCreateSubDir;
    public event EventHandler AfterDelete;
    public event EventHandler AfterMoveTo;
    protected virtual void OnAfterCreate()
    {
        EventHandler afterCreate = AfterCreate;
        if (afterCreate != null)
        {
           
            afterCreate(this, new EventArgs());
        }
    }

    protected virtual void OnAfterCreateSubDir()
    {
        EventHandler afterCreateSubDir = AfterCreateSubDir;
        if (afterCreateSubDir != null)
        {
            afterCreateSubDir(this, new EventArgs());
        }
    }

    protected virtual void OnAfterDelete()
    {
        EventHandler afterDelete = AfterDelete;
        if (afterDelete != null)
        {
            afterDelete(this, new EventArgs());
        }
    }

    protected virtual void OnAfterMoveTo()
    {
        EventHandler afterMoveTo = AfterMoveTo;
        if (afterMoveTo != null)
        {
            afterMoveTo(this, new EventArgs());
        }
    }

    // Event firing members
    //激活事件的方法
    public void Create()
    {
       
        internalDirInfo.Create();
        OnAfterCreate();
    }

    public DirectoryInfoNotify CreateSubdirectory(string path)
    {
        DirectoryInfo subDirInfo = internalDirInfo.CreateSubdirectory(path);
        OnAfterCreateSubDir();

        return (new DirectoryInfoNotify(subDirInfo.FullName));
    }

    public void Delete(bool recursive)
    {
        internalDirInfo.Delete(recursive);
        OnAfterDelete();
    }

    public void Delete()
    {
        internalDirInfo.Delete();
        OnAfterDelete();
    }

    public void MoveTo(string destDirName)
    {
        internalDirInfo.MoveTo(destDirName);
        OnAfterMoveTo();
    }

    // Nonevent firing members
    public string FullName
    {
        get { return (internalDirInfo.FullName); }
    }
    public string Name
    {
        get { return (internalDirInfo.Name); }
    }
    public DirectoryInfoNotify Parent
    {
        get { return (new DirectoryInfoNotify(internalDirInfo.Parent.FullName)); }
    }
    public DirectoryInfoNotify Root
    {
        get { return (new DirectoryInfoNotify(internalDirInfo.Root.FullName)); }
    }

    public override string ToString()
    {
        return (internalDirInfo.ToString());
    }
}

 

C#中的文件操作

微软的.Net框架为我们提供了基于流的I/O操作方式,这样就大大简化了开发者的工作。因为我们可以对一系列的通用对象进行操作,而不必关心该I/O操作是和本机的文件有关还是和网络中的数据有关。.Net框架...
  • jieyulu
  • jieyulu
  • 2007年07月04日 17:11
  • 374

C#文件夹操作之Directory类和DirectoryInfo类

1.Directory类 Create
  • u010792238
  • u010792238
  • 2014年06月10日 12:07
  • 2100

Directory类(DirectoryInfo类)和Path类与File类的基本方法与操作以及实例

1 文件操作常用相关类 1)File //操作文件,静态类,对文件整体操作。拷贝、删除、剪切等。 2)Directory //操作目录(文件夹),静态类。 3)DirectoryInfo //文...
  • u011955860
  • u011955860
  • 2014年03月25日 20:44
  • 1560

Directory和DirectoryInfo区别

将 DirectoryInfo 类用于典型操作,如复制、移动、重命名、创建和删除目录。 如果打算多次重用某个对象,可考虑使用 DirectoryInfo 的实例方法,而不是 Directory 类的...
  • ghevinn
  • ghevinn
  • 2013年02月20日 18:11
  • 1723

File 类,FileInfo 类 Directory 类,DirectoryInfo 类 区别

File 类 是一个静态类。提供用于创建、复制、删除、移动和打开文件的静态方法。 FileInfo 类 是一个密闭类。提供创建、复制、删除、移动和打开文件的实例方法。 由于所有的 File 方法都...
  • YaoXTao
  • YaoXTao
  • 2012年12月11日 18:01
  • 985

C#_FileInfo文件属性类和DirectoryInfo文件夹属性类

using System; using System.Collections; using System.Collections.Generic; using System.IO; using Sys...
  • c201038795050
  • c201038795050
  • 2015年12月19日 23:37
  • 2039

C#中DirectoryInfo类、目录信息类、文件夹信息类的用法

C#中DirectoryInfo类、目录信息类、文件夹信息类的用法 DirectoryInfo类和Directory类之间的关系与FileInfo类和File类...
  • xionghaoaizhangruyun
  • xionghaoaizhangruyun
  • 2010年04月09日 19:03
  • 5125

如何在类中封装回调函数?

如何在类中封装回调函数? 我们知道回调函数只能是全局的或是静态的。 全局函数会破坏类的封装性,故不予采用。 而静态函数只能访问类的静态成员,不能访问类中非静态成员。   那么如何让静态函...
  • hopedengxiwang
  • hopedengxiwang
  • 2011年11月06日 14:58
  • 3668

iOS - UI篇 -封装了友盟统计

封装了友盟统计的功能,只需要导入这个类,就可以很方便的使用:XXUMAnalyticsHelper.h/** * 友盟统计功能相关操作API封装 */ @interface XXUMAnalyt...
  • jeikerxiao
  • jeikerxiao
  • 2016年09月05日 15:59
  • 335

流和文件(文件目录的一些操作)

题目要求:     分别利用File类和FileInfo类,Directory类和DirectoryInfo类实现文件和目录的创建,删除,复制,移动等操作 输入代码: 以File为实例 ...
  • linhaiyun_ytdx
  • linhaiyun_ytdx
  • 2016年06月17日 18:55
  • 216
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:封装原来的DirectoryInfo类,添加事件,可以代替FileSystemWatcher 类
举报原因:
原因补充:

(最多只允许输入30个字)