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());
??? }
}
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());
??? }
}
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
