NETCF开发之文件与目录(8)
来源:互联网 发布:淘宝双十一预售发货 编辑:程序博客网 时间:2024/05/16 16:10
1.1 文件管理
Pocket PC应用程序通常会包含文件管理的功能。例如访问文本配置文件、XML文档或数据库以及拷贝、移动、删除和使用文件属性。下面就介绍如何在Pocket PC 环境里利用System.IO 命名空间的File类来实现文件管理。
1.1.1 File类和FileInfo类
与Directory和DirectoryInfo类类似,System.IO命名空间包括File和FileInfo两个类。这两个类之间的差别是File类提供静态方法,而FileInfo类提供实例方法。相比之下,File类的功能更强大更方便。表11-6列出在Pocket PC应用程序开发中常用的File类方法。
表11-6:File类用于管理文件的方法
方法
描述
Copy
拷贝指定文件。
Delete
删除指定文件。
Exists
检查指定文件是否存在。
Move
移动指定文件到新的目录。
1.1.2 检查文件是否存在
System.IO命名空间的 File类提供一个Exists方法。顾名思义,该方法用于判断指定的文件是否存在。该方法的声明语法如下:
Public Shared Function Exists(ByVal path As String) As Boolean
Exists方法返回一个布尔值。如果文件存在,返回True,否则返回False。以下代码演示调用File类Exists方法。
MsgBox(System.IO.File.Exists("/Program Files/My Directory/working.tmp"))
1.1.3 复制文件
使用Copy方法很容易实现文件的复制操作。该方法提供两个重载版本。假设目标文件不存在,第一个重载版本的声明语法如下所示:
Overloads Public Shared Sub Copy(ByVal sourceFileName As String, ByVal destFileName As String)
Copy方法的第一个重载版本的调用方式如下所示:
System.IO.File.Copy("/Program Files/My Directory/working.tmp", "/Program Files/My Directory/new.tmp")
使用Copy方法的第一个重载版本复制文件,应该使用System.IO.File.Exists方法确认目标文件不存在,否则将抛出一个IOException例外。
File类的第二个重载版本可以指定目标文件如果存在的话,是否覆盖目标文件。声明语法如下所示:
Overloads Public Shared Sub Copy(_ ByVal sourceFileName As String, _ ByVal destFileName As String, _ ByVal overwrite As Boolean _ )
第三个参数overwrite接收一个布尔值。设置该参数为True,标识覆盖目标文件。调用方式如下所示:
System.IO.File.Copy("/Program Files/My Directory/working.tmp", "/Program Files/My Directory/new.tmp", True)
1.1.4 移动文件
除了能够复制文件外,还可以移动文件。File类提供一个Move方法。该方法的声明语法如下:
Public Shared Sub Move(ByVal sourceFileName As String, ByVal destFileName As String)
参数sourceFilename指定源文件的路径,参数desFileName指定目标文件的路径。该方法的调用方式如下所示:
System.IO.File.Move("/Program Files/My Directory/working.tmp", "/Program Files/Archive/working.tmp")
使用Move方法时需要注意,如果目标文件存在,将抛出一个IOException例外。因此在移动文件之前,应该使用System.IO.File.Exists方法确认目标文件不存在。清单11-13演示如何正确的移动文件。
清单11-13:移动文件
' 声明返回状态结构体 Public Structure ReturnStatus Dim Success As Boolean Dim Message As String End Structure Function MoveFile(ByVal strSource As String, ByVal strTarget As String) As ReturnStatus Dim MyReturn As ReturnStatus If Not (System.IO.File.Exists(strSource)) Then MyReturn.Success = False MyReturn.Message = "源文件不存在" Return MyReturn Exit Function End If If System.IO.File.Exists(strTarget) Then MyReturn.Success = False MyReturn.Message = "目标文件已存在" Return MyReturn Exit Function End If Try System.IO.File.Move(strSource, strTarget) MyReturn.Success = True MyReturn.Message = strTarget Return MyReturn Catch ex As Exception MyReturn.Success = False MyReturn.Message = ex.Message Return MyReturn End Try End Function
1.1.5 删除文件
删除文件可以使用File类的Delete方法来实现,该方法的声明语法如下:
Public Shared Sub Delete(ByVal path As String)
删除文件时需要指定文件的完整路径。调用方式如下所示:
System.IO.File.Delete("/Program Files/My Directory/working.tmp")
1.1.6 获取文件属性
通过FileInfo类的Attributes属性可以获得指定文件的当前属性。注意我说地是FileInfo类。在.NET Compact Framework里,File类没有提供这样的方法。
在该属性返回的值里包含存档、隐藏、只读和系统属性标记。以下代码演示如何访问文件属性:
Dim myFile As System.IO.FileInfo myFile = New System.IO.FileInfo("/Program Files/My Directory/working.tmp") MsgBox(myFile.Attributes.ToString)
1.1.7 设置文件属性
使用FileInfo类的Attributes属性可以设置文件属性。设置文件属性的示例代码如清单11-14所示。首先创建一个指定文件的FileInfo类实例,然后,通过该实例给文件增加只读属性。
清单11-14:移动文件
…… Dim myFile As System.IO.FileInfo myFile = New System.IO.FileInfo("/Program Files/My Directory/working.tmp") myFile.Attributes = myFile.Attributes + IO.FileAttributes.ReadOnly MsgBox(myFile.Attributes.ToString) ……
- NETCF开发之文件与目录(8)
- NETCF开发之文件与目录(5)
- NETCF开发之文件与目录(6)
- NETCF开发之文件与目录(7)
- NETCF开发之文件与目录(9)
- NETCF开发之文件和目录(1)
- NETCF开发之文件和目录(2)
- NETCF开发之文件和目录(3)
- NETCF开发之文件和目录(4)
- NETCF开发之文件和目录(2)
- NETCF开发之使用资源文件
- NETCF开发之文件压缩和解压缩
- NETCF开发之注册表编程(1)
- NETCF开发之注册表编程(2)
- NETCF开发之MessageQueue控件
- NETCF开发之Notification控件
- NETCF开发之BindingSource控件
- NETCF开发之用户界面设计
- 喝酒与编程
- 图片显示不出来的怪问题
- java.util.Properties从XML中加载属性
- 人月神话blog:如何循序渐进向DotNet架构师发展
- 测试在blog中添加天气预报
- NETCF开发之文件与目录(8)
- 家乡的两种不错的树种
- web2.0战火波及移动IM 3G前圈地争夺话语权
- 黑板上的愛情
- des加密算法程序收藏可用
- CRC算法与实现
- 学习 UML
- JCreator配置JSP环境
- 软件项目计划如何编写