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

    技术2022-05-11  88

    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());     } }  

    最新回复(0)