精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>〓〓.VB电子文档集锦.〓〓>>《老猫:VB声明API》>>VB API:文件处理函数 第一页

主题:VB API:文件处理函数 第一页
发信人: winsy(鹰派)
整理人: winsy(2003-03-15 10:41:33), 站内信件
CloseHandle 

VB声明 
Declare Function CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Long) As Long 
说明 
关闭一个内核对象。其中包括文件、文件映射、进程、线程、安全和同步对象等。涉及文件处理时,这个函数通常与vb的close命令相似。应尽可能的使用close,因为它支持vb的差错控制。注意这个函数使用的文件句柄与vb的文件编号是完全不同的 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hObject Long,欲关闭的一个对象的句柄 
注解 
除非对内核对象的所有引用都已关闭,否则该对象不会实际删除
 

CompareFileTime 

VB声明 
Declare Function CompareFileTime Lib "kernel32" Alias "CompareFileTime" (lpFileTime1 As FILETIME, lpFileTime2 As FILETIME) As Long 
说明 
根据FILETIME结构的信息,对比两个文件的时间 
返回值 
Long,如两个时间相等,就返回零;如lpFileTime1小于lpFileTime2,返回-1;如lpFileTime2小于lpFileTime1,返回1 
参数表 
参数 类型及说明 
lpFileTime1 FILETIME,参考FILETIME 
lpFileTime2 


CopyFile 

VB声明 
Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long 
说明 
复制文件。与vb的filecopy命令相似 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
lpExistingFileName String,源文件名 
lpNewFileName String,目标文件名 
bFailIfExists Long,如果设为TRUE(非零),那么一旦目标文件已经存在,则函数调用会失败。否则目标文件被改写 


CreateDirectory, CreateDirectoryEx 

VB声明 
Declare Function CreateDirectory& Lib "kernel32" Alias "CreateDirectoryA" (ByVal lpNewDirectory As String, lpSecurityAttributes As SECURITY_ATTRIBUTES)
Declare Function CreateDirectoryEx& Lib "kernel32" Alias "CreateDirectoryExA" (ByVal lpTemplateDirectory As String, ByVal lpNewDirectory As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) 
说明 
创建一个新目录 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
lpTemplateDirectory String,指定一个模板目录的名字,从中复制默认属性(比如目录中文件的默认压缩方式)。如设为vbNullString,则表示不使用模板 
lpNewDirectory String,新目录的名字 
lpSecurityAttributes SECURITY_ATTRIBUTES,这个结构定义了目录的安全特性——如果操作系统支持的话 


CreateFile 

VB声明 
Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long 
说明 
这是一个全功能的例程,可打开和创建文件、管道、邮槽、通信服务、设备以及控制台 
返回值 
Long,如执行成功,则返回文件句柄。INVALID_HANDLE_VALUE表示出错,会设置GetLastError。即使函数成功,但若文件存在,且指定了CREATE_ALWAYS 或 OPEN_ALWAYS,GetLastError也会设为ERROR_ALREADY_EXISTS 
参数表 
参数 类型及说明 
lpFileName String,要打开的文件的名字 
dwDesiredAccess Long,如果为 GENERIC_READ 表示允许对设备进行读访问;如果为 GENERIC_WRITE 表示允许对设备进行写访问(可组合使用);如果为零,表示只允许获取与一个设备有关的信息 
dwShareMode Long,零表示不共享; FILE_SHARE_READ 和/或 FILE_SHARE_WRITE 表示允许对文件进行共享访问 
lpSecurityAttributes SECURITY_ATTRIBUTES,指向一个SECURITY_ATTRIBUTES结构的指针,定义了文件的安全特性(如果操作系统支持的话) 
dwCreationDisposition Long,下述常数之一: 
CREATE_NEW 创建文件;如文件存在则会出错 
CREATE_ALWAYS 创建文件,会改写前一个文件 
OPEN_EXISTING 文件必须已经存在。由设备提出要求 
OPEN_ALWAYS 如文件不存在则创建它 
TRUNCATE_EXISTING 讲现有文件缩短为零长度 
dwFlagsAndAttributes Long,一个或多个下述常数 
FILE_ATTRIBUTE_ARCHIVE 标记归档属性 
FILE_ATTRIBUTE_COMPRESSED 将文件标记为已压缩,或者标记为文件在目录中的默认压缩方式 
FILE_ATTRIBUTE_NORMAL 默认属性 
FILE_ATTRIBUTE_HIDDEN 隐藏文件或目录 
FILE_ATTRIBUTE_READONLY 文件为只读 
FILE_ATTRIBUTE_SYSTEM 文件为系统文件 
FILE_FLAG_WRITE_THROUGH 操作系统不得推迟对文件的写操作 
FILE_FLAG_OVERLAPPED 允许对文件进行重叠操作 
FILE_FLAG_NO_BUFFERING 禁止对文件进行缓冲处理。文件只能写入磁盘卷的扇区块 
FILE_FLAG_RANDOM_ACCESS 针对随机访问对文件缓冲进行优化 
FILE_FLAG_SEQUENTIAL_SCAN 针对连续访问对文件缓冲进行优化 
FILE_FLAG_DELETE_ON_CLOSE 关闭了上一次打开的句柄后,将文件删除。特别适合临时文件 
也可在Windows NT下组合使用下述常数标记: 
SECURITY_ANONYMOUS, SECURITY_IDENTIFICATION, SECURITY_IMPERSONATION, SECURITY_DELEGATION, SECURITY_CONTEXT_TRACKING, SECURITY_EFFECTIVE_ONLY 
hTemplateFile Long,如果不为零,则指定一个文件句柄。新文件将从这个文件中复制扩展属性 
注解 
打开一个通信端口时(如COM1),无论如何都要设置成 OPEN_EXISTING
这个函数代替了lOpen 和 lCreate函数,应该是我们的首选 


CreateFileMapping 

VB声明 
Declare Function CreateFileMapping Lib "kernel32" Alias "CreateFileMappingA" (ByVal hFile As Long, lpFileMappigAttributes As SECURITY_ATTRIBUTES, ByVal flProtect As Long, ByVal dwMaximumSizeHigh As Long, ByVal dwMaximumSizeLow As Long, ByVal lpName As String) As Long 
说明 
创建一个新的文件映射对象 
返回值 
Long,新建文件映射对象的句柄;零意味着出错。会设置GetLastError。即使函数成功,但倘若返回的句柄属于一个现成的文件映射对象,那么GetLastError也会设置成ERROR_ALREADY_EXISTS。在这种情况下,文件映射的长度就是现有对象的长度,而不是这个函数指定的尺寸 
参数表 
参数 类型及说明 
hFile Long,指定欲在其中创建映射的一个文件句柄。&HFFFFFFFF&表示在内存中创建一个文件映射 
lpFileMappigAttributes SECURITY_ATTRIBUTES,指定一个安全对象,在创建文件映射时使用。如果为NULL(用ByVal As Long传递零),表示使用默认安全对象 
flProtect Long,下述常数之一: 
PAGE_READONLY 以只读方式打开映射 
PAGE_READWRITE 以可读、可写方式打开映射 
PAGE_WRITECOPY 为写操作留下备份 
可组合使用下述一个或多个常数 
SEC_COMMIT 为文件映射一个小节中的所有页分配内存 
SEC_IMAGE 文件是个可执行文件 
SEC_RESERVE 为没有分配实际内存的一个小节保留虚拟内存空间 
dwMaximumSizeHigh Long,文件映射的最大长度(高32位) 
dwMaximumSizeLow Long,文件映射的最小长度(低32位)。如这个参数和dwMaximumSizeHigh都是零,就用磁盘文件的实际长度 
lpName String,指定文件映射对象的名字。如存在这个名字的一个映射,函数就会打开它。用vbNullString创建一个无名的文件映射 


DeleteFile 

VB声明 
Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long 
说明 
删除指定文件 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
lpFileName String,欲删除文件的名字 
注解 
与vb的kill语句相似,在windows 95下使用这个函数要小心——即使文件当前正由一个应用程序打开,该函数也会将其删除
 

DeviceIoControl 

VB声明 
Declare Function DeviceIoControl Lib "kernel32" Alias "DeviceIoControl" (ByVal hDevice As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesReturned As Long, lpOverlapped As OVERLAPPED) As Long 
说明 
对设备执行指定的操作 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hDevice Long,设备句柄 
dwIoControlCode Long,带有 FSCTL_ 前缀的常数。参考设备控制选项的部分列表 
lpInBuffer Any,具体取决于dwIoControlCode参数。参考设备控制选项的部分列表 
nInBufferSize Long,输入缓冲区的长度 
lpOutBuffer Any,具体取决于dwIoControlCode参数。参考设备控制选项的部分列表 
nOutBufferSize Long,输出缓冲区的长度 
lpBytesReturned Long,实际装载到输出缓冲区的字节数量 
lpOverlapped OVERLAPPED,这个结构用于重叠操作。针对同步操作,请用ByVal As Long传递零值 
注解 
可用于windows 95 和 windows nt,但并非所有的操作都得到了两种操作系统的同时支持
 

DosDateTimeToFileTime 

VB声明 
Declare Function DosDateTimeToFileTime Lib "kernel32" Alias "DosDateTimeToFileTime" (ByVal wFatDate As Long, ByVal wFatTime As Long, lpFileTime As FILETIME) As Long 
说明 
将DOS日期和时间值转换成一个 win32 FILETIME 值 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
wFatDate Long,16位DOS日期值 
wFatTime Long,16位DOS时间值 
lpFileTime FILETIME,用于装载win32时间的一个结构 


FileTimeToDosDateTime 

VB声明 
Declare Function FileTimeToDosDateTime Lib "kernel32" Alias "FileTimeToDosDateTime" (lpFileTime As FILETIME, ByVal lpFatDate As Long, ByVal lpFatTime As Long) As Long 
说明 
将一个 win32  FILETIME 值转换成DOS日期和时间值 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
lpFileTime FILETIME,包含了欲转换时间的一个结构 
lpFatDate Long,16位DOS日期值 
lpFatTime Long,16位DOS时间值 


FileTimeToLocalFileTime 

VB声明 
Declare Function FileTimeToLocalFileTime Lib "kernel32" Alias "FileTimeToLocalFileTime" (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long 
说明 
将一个FILETIME结构转换成本地时间 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
lpFileTime FILETIME,包含了UTC时间信息的一个结构 
lpLocalFileTime FILETIME,用于装载转换过后的本地时间的结构 


FileTimeToSystemTime 

VB声明 
Declare Function FileTimeToSystemTime Lib "kernel32" Alias "FileTimeToSystemTime" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long 
说明 
根据一个FILETIME结构的内容,装载一个SYSTEMTIME结构 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
lpFileTime FILETIME,包含了文件时间的一个结构 
lpSystemTime SYSTEMTIME,用于装载系统时间信息的一个结构 


FindClose 

VB声明 
Declare Function FindClose Lib "kernel32" Alias "FindClose" (ByVal hFindFile As Long) As Long 
说明 
关闭由FindFirstFile函数创建的一个搜索句柄 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hFindFile Long,由FindFirstFile函数提供的搜索句柄 


FindFirstFile 

VB声明 
Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long 
说明 
根据文件名查找文件 
返回值 
Long,如执行成功,返回一个搜索句柄。如果出错,返回一个INVALID_HANDLE_VALUE常数,一旦不再需要,应该用FindClose函数关闭这个句柄 
参数表 
参数 类型及说明 
lpFileName String,欲搜索的文件名。可包含通配符,并可包含一个路径或相对路径名 
lpFindFileData WIN32_FIND_DATA,这个结构用于装载与找到的文件有关的信息。该结构可用于后续的搜索 
注解 
由这个函数返回的句柄可以作为一个参数用于FindNextFile函数。这样一来,就可以方便的枚举出与lpFileName参数指定的文件名相符的所有文件
 

FindNextFile 

VB声明 
Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long 
说明 
根据调用FindFirstFile函数时指定的一个文件名查找下一个文件 
返回值 
Long,非零表示成功,零表示失败。如不再有与指定条件相符的文件,会将GetLastError设置成ERROR_NO_MORE_FILES 
参数表 
参数 类型及说明 
hFindFile Long,由FindFirstFile函数返回的搜索句柄 
lpFindFileData WIN32_FIND_DATA,这个结构用于装载与找到的文件有关的信息 


FlushFileBuffers 

VB声明 
Declare Function FlushFileBuffers Lib "kernel32" Alias "FlushFileBuffers" (ByVal hFile As Long) As Long 
说明 
针对指定的文件句柄,刷新内部文件缓冲区 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hFile Long,文件句柄 

[关闭][返回]