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());
}
}
分享到:
相关推荐
运用DirectoryInfo类和FileInfo类 创建文件、目录或驱动器的实例 获取指定文件的基本信息
本文实例讲述了C#使用Directoryinfo类获得目录信息和属性的方法。分享给大家供大家参考。具体如下: using System; using System.IO; class MainClass { static void Main(string[] args) { FileInfo file = new ...
在.Net中处理系统文件相关的几个类分别是File、Directory、FileInfo、DirectoryInfo、DriveInfo、FileSystemWatcher。本文介绍下这几个类的用法。1.File类提供静态方法用来创建、移动、复制、删除文件的操作,并可以...
C# File(文件类)、FileInfo(文件信息类)、Directory(目录类)、(目录信息类)
C#中File,Directory,FileInfo,DirectoryInfo区别与应用.pdf
种特殊参数在Windows的命令提示符或者“运行”对话框中都可以使用,等价于DOS中的cd命令参数。直接上代码,一看你就懂了:
C# 批量修改文件名 -文件及文件夹操作- File类、Directory 类、FileInfo 类、DirectoryInfo 类
分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用的属性、方法、类和各种技术,...
12.1.2 FileInfo类和DirectoryInfo类 283 12.1.3 FileStream类 284 12.1.4 StreamWriter类 287 12.1.5 StreamReader类 289 12.2 文件的基本操作 290 12.2.1 判断文件是否存在 291 12.2.2 创建文件 291...
C#文件流的详细操作,文件与文件夹创建复制移动删除,File类和Directory类的使用,FileInfo类和DirectoryInfo类的使用
DirectoryInfo dir = new DirectoryInfo(dirPath); //获得该文件夹的所有访问权限 System.Security.AccessControl.DirectorySecurity dirSecurity = dir.GetAccessControl(AccessControlSections.All); //...
扩展DirectoryInfo类,使其支持各种强大的文件夹操作
运用DirectoryInfo类和FileInfo类。 创建文件、目录或驱动器的实例。 获取指定文件的基本信息 。 可以手动输入路径 判断目录是否存在。 文件是否存在。 如果不存在将创建此文件,并自动生成目录。 VS2005编写 2011年...
6.3 Directory类和DirectoryInfo类 140 6.4 例子:查找文件 143 6.5 例子:拆分和合并文件 144 习题: 145 第七章 多线程程序设计 146 7.1 线程类(Thread)的属性和方法 146 7.2 线程的创建 147 7.3 建立线程类 148 ...
3. DirectoryInfo类和Directory类实现对目录的操作 4. FileInfo和File类实现对文件的操作 5. Path类对路径的操作 6. C#流的介绍 7. StreamReader读取文件 8. StreamWriter类:写入文件 9. FileStream类:文件...
在.Net中,对文件(File)和文件夹(Folder)的操作可以使用File类和Directory类,也可以使用FileInfo类和DirectoryInfo类。文件夹(Folder)是只在Windows操作系统中使用的名词。在操作系统的理论中,人们更习惯于...
Path 对路径 字符串进行操作 获得后缀 能合并路径 获取文件名 Directory和DirectoryInfo 对目录进行操作 判断目录是否存在 创建目录 删除目录 获取目录下所有的子目录 获取目录下所有的子文件 File和FileInfo 对文件...
12.1.2 DirectoryInfo类和FileInfo类 12.1.3 DriveInfo类 12.1.4 使用Attributes 12.1.5 使用通配符过滤文件 12.1.6 获取文件的版本信息 12.1.7 Path类 12.1.8 文件浏览器 12.2 使用流读写文件 ...