VB中利用Windows API实现文件操作
来源:互联网
作者:西部数码
时间:2008-04-09
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
示例如下:
long hfile= CreateFile(“c:\\test.txt”,GENERIC_READ,
FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,
OPEN_EXISTING,FILE_ELAG_OVERLAPPED,NULL)
2、lcreat
作用:创建一个文件。如文件已经存在,就会将其缩短成零长度,并将其打开,以便读写
声明形式:
Declare Function lcreat Lib "kernel32" Alias "_lcreat" (ByVal lpPathName As String, ByVal iAttribute As Long) As Long
说明:此函数的返回值类型为Long,如执行成功,返回打开文件的句柄。如果出错,则返回HFILE_ERROR
该函数会打开已由其他应用程序打开的文件,所以使用它时要小心。win32的CreateFile函数已取代了这个函数。这个函数与vb的open语句作用相同
参数说明:
参数 类型及说明 lpPathName String,欲创建的文件的名字 iAttribute Long,下述值之一:
0——文件能够读写
1——创建只读文件
2——创建隐藏文件
3——创建系统文件
例如下面的语句打开c:\test.txt文件
lcreat “c:\test.txt”,0
3、lopen
作用:以二进制模式打开指定的文件
声明形式:
Declare Function lopen Lib "kernel32" Alias "_lopen" (ByVal lpPathName As String, ByVal iReadWrite As Long) As Long
说明:此函数的返回值类型为Long,如执行成功,返回打开文件的句柄。HFILE_ERROR表示出错。会设置GetLastError
CreateFile函数在win32下提供了更多的功能:
参数说明:
参数 类型及说明 lpPathName String,欲打开文件的名字 iReadWrite Long,访问模式和共享模式常数的一个组合,如下所示: 1、访问模式 READ 打开文件,读取其中的内容 READ_WRITE 打开文件,对其进行读写 WRITE 打开文件,在其中写入内容 2、共享模式(参考OpenFile函数的标志常数表) OF_SHARE_COMPAT, OF_SHARE_DENY_NONE, OF_SHARE_DENY_READ, OF_SHARE_DENY_WRITE, OF_SHARE_EXCLUSIVE
4、GetFileTime
作用:取得指定文件的时间信息
声明形式:
Declare Function GetFileTime Lib "kernel32" Alias "GetFileTime" (ByVal hFile As Long, lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long
说明:Long,非零表示成功,零表示失败。会设置GetLastError
如果不需要特定的信息,那么lpCreationTime,lpLastAccessTime,lpLastWriteTime都可以设置为零(用ByVal As Long)。这个函数返回的文件时间采用UTC格式
参数说明:
参数 类型及说明 hFile Long,文件的句柄 lpCreationTime FILETIME,用于装载文件的创建时间 lpLastAccessTime FILETIME,用于装载文件上一次访问的时间(FAT文件系统不支持这一特性) lpLastWriteTime FILETIME,用于装载文件上一次修改的时间
示例代码如下:
‘函数声明
Private Declare Function GetFileTime Lib "kernel32" (ByVal hFile As Long, lpCreationTime As FileTime, lpLastAccessTime As FileTime, lpLastWriteTime As FileTime) As Long
Private Declare Function lopen Lib "kernel32" Alias "_lopen" (ByVal lpPathName As String, ByVal iReadWrite As Long) As Long
‘定义变量
Dim file As Long
Dim CreationTime As FileTime
Dim lastaccesstime As FileTime
Dim lastaccesstime As FileTime
‘定义结构
Private Type FileTime
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Sub Form_Load()
str1 = "c:\text.txt"
file = lopen(str1, READ_WRITE) ‘打开文件
temp = GetFileTime(file, CreationTime, lastaccesstime, lastwritetime)’得到文件相关信息
MsgBox CreationTime ‘显示信息
End Sub
以上代码显示文件的创建时间
5、CopyFile
作用:复制文件。与vb的filecopy命令相似
声明形式:
Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
说明:Long,非零表示成功,零表示失败。会设置GetLastError
参数说明:
参数 类型及说明 lpExistingFileName String,源文件名 lpNewFileName String,目标文件名 bFailIfExists Long,如果设为TRUE(非零),那么一旦目标文件已经存在,则函数调用会失败。否则目标文件被改写
示例代码如下:
‘函数声明
Private Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
Private Sub Form_Load()
CopyFile "c:\test1.txt", "c:\test2.txt", 1
End Sub
以上代码将c:\test1.txt 拷贝到c:\test2.txt
6、MoveFile, MoveFileEx
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



