C#学习笔记(二十二):使用文件高级
2006-04-05 11:35
591 查看
监控文件结构:
这里使用的FileSystemWatcher类,可以对文件系统事件做出响应。
使用这个类前必须设置的属性
设置后必须为它4种事件编写事件处理程序:Changed,Created,Deleted和Renamed。
监控文件的例子UseFileAdvanced见下载。
异步访问文件:
在基础中介绍的例子对文件的访问都是同步的。这表示直到完成了读或写操作,才能继续进行应用程序流。对于大多数应用程序都适用同步文件访问。但是有时需要写入大量数据,而又不希望在完成写入工作之前让应用程序处于等待状态(假死)。或者需要从网络的某个位置的文件上读取数据,但是网络连接速度却非常慢;在加载数据期间,应用程序可以继续处理其他工作或取消当前的工作,而不必等待进程结束再处理。
FileStream类给出了几种允许对文件进行异步访问的方法。BeginRead()方法,此方法接受与基本Read方法的参数相类似的参数和其他一些附加参数来启动一个异步进程:
IAsyncResult BeginRead(byte[] array, int offset, int numBytes, AsyncCallback userCallBack, object stateObject);
前3个参数完全等同于Read方法的参数。UserCallBack参数是定制的方法,当读取操作结束时,.NET Framework就会将这种定制方法调用回应用程序中。此方法不是必须的,所以可以给它传递null。最后一个参数是用户提供的状态对象,与回调方法一起使用,以便分隔多个异步操作。因为可以使用一个回调方法负责许多不同的操作,所以可以使用此参数来传递规定异步操作的字符串或数据值。因为还没使用回调方法这里可以使用null。
所返回的IAsyncResult对象是读取进程的抽象表示。它保护许多属性和方法,允许查询进程的状态,以及判断进程是否结束了。
为了完成读取进程,就要调用EndRead()方法,并传入从BeginRead()调用返回的IAsyncResult对象。
例子UseIAsyncResult见下载。
例子下载本文出自 “努力学习的小熊” 博客,转载请与作者联系!
这里使用的FileSystemWatcher类,可以对文件系统事件做出响应。
使用这个类前必须设置的属性
属性 | 说明 |
Path | 它设置要被监控的文件或目录位置 |
NotifyFilter | 这是NotifyFilters枚举值的组合,NotifyFilters枚举值规定在被监控的文件内要监控哪些内容。这些表示要被监控的文件或文件夹的属性。如果任何规定的属性发生了变化,则就引发事件。可能的枚举值是:Attributes,CreationTime,DirectoryName,FileName,LastAccess,LastWrite,Security和Size。注意可以通过二进制OR操作符联合使用这些枚举值 |
Filter | 在其上监控文件的过滤器,例如:*.txt |
监控文件的例子UseFileAdvanced见下载。
异步访问文件:
在基础中介绍的例子对文件的访问都是同步的。这表示直到完成了读或写操作,才能继续进行应用程序流。对于大多数应用程序都适用同步文件访问。但是有时需要写入大量数据,而又不希望在完成写入工作之前让应用程序处于等待状态(假死)。或者需要从网络的某个位置的文件上读取数据,但是网络连接速度却非常慢;在加载数据期间,应用程序可以继续处理其他工作或取消当前的工作,而不必等待进程结束再处理。
FileStream类给出了几种允许对文件进行异步访问的方法。BeginRead()方法,此方法接受与基本Read方法的参数相类似的参数和其他一些附加参数来启动一个异步进程:
IAsyncResult BeginRead(byte[] array, int offset, int numBytes, AsyncCallback userCallBack, object stateObject);
前3个参数完全等同于Read方法的参数。UserCallBack参数是定制的方法,当读取操作结束时,.NET Framework就会将这种定制方法调用回应用程序中。此方法不是必须的,所以可以给它传递null。最后一个参数是用户提供的状态对象,与回调方法一起使用,以便分隔多个异步操作。因为可以使用一个回调方法负责许多不同的操作,所以可以使用此参数来传递规定异步操作的字符串或数据值。因为还没使用回调方法这里可以使用null。
所返回的IAsyncResult对象是读取进程的抽象表示。它保护许多属性和方法,允许查询进程的状态,以及判断进程是否结束了。
为了完成读取进程,就要调用EndRead()方法,并传入从BeginRead()调用返回的IAsyncResult对象。
例子UseIAsyncResult见下载。
例子下载本文出自 “努力学习的小熊” 博客,转载请与作者联系!
相关文章推荐
- C#学习笔记(二十二):使用文件高级
- C#学习笔记(二十一):使用文件基础
- C#学习笔记:使用文件基础
- C#学习笔记(二十一):使用文件基础
- C#学习笔记(二十一):使用文件基础
- C#学习笔记——使用流处理文件
- C#学习笔记(十六):使用打开保存文件对话框
- Linux 学习笔记 -- 第四部分 Linux 使用着管理 -- 第15章 磁盘配额 (Quota) 与高级文件系统管理
- C#学习笔记(十六):使用打开保存文件对话框
- C#学习笔记(十六):使用打开保存文件对话框
- C#学习笔记(十六):使用打开保存文件对话框
- C语言学习笔记----伊能C语言学习笔记----如何在一个文件中使用另一个文件中定义的变量呢??
- C++ 使用头文件 - 学习笔记(6)
- 【C#学习笔记】结构体使用
- JSP Servlet学习笔记——使用fileupload上传文件
- (原创)c#学习笔记06--函数01--定义和使用函数01--返回值
- 12.笔记JAVA Spring框架学习————Bean使用外部属性文件
- WPF and Silverlight 学习笔记(二十二):使用代码实现绑定、绑定数据的验证
- node.js学习笔记之使用文件流
- C#中使用委托的学习笔记