VB API:文件处理函数 第三页

来源:百度文库 编辑:神马文学网 时间:2024/04/28 23:02:15
VB API:文件处理函数 第三页 发信人: winsy(鹰派)
整理人: winsy(2003-03-15 10:41:49), 站内信件 GetLogicalDrives 

VB声明 
Declare Function GetLogicalDrives Lib "kernel32" Alias "GetLogicalDrives" () As Long 
说明 
判断系统中存在哪些逻辑驱动器字母 
返回值 
Long,这个结构中的二进制位标志着存在哪些驱动器。其中,位0设为1表示驱动器A:存在于系统中;位1设为1表示存在B:驱动器;以次类推 


GetLogicalDriveStrings 

VB声明 
Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long 
说明 
获取一个字串,其中包含了当前所有逻辑驱动器的根驱动器路径 
返回值 
Long,装载到lpBuffer的字符数量(排除空中止字符)。如缓冲区的长度不够,不能容下路径,则返回值就变成要求的缓冲区大小。零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
nBufferLength Long,lpBuffer字串的长度 
lpBuffer String,用于装载逻辑驱动器名称的字串。每个名字都用一个NULL字符分隔,在最后一个名字后面用两个NULL表示中止(空中止) 


GetOverlappedResult 

VB声明 
Declare Function GetOverlappedResult Lib "kernel32" Alias "GetOverlappedResult" (ByVal hFile As Long, lpOverlapped As OVERLAPPED, lpNumberOfBytesTransferred As Long, ByVal bWait As Long) As Long 
说明 
判断一个重叠操作当前的状态 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError。如bWait为FALSE,而且异步操作仍在执行,则函数回返回零,而GetLastError会设置成ERROR_IO_INCOMPLETE 
参数表 
参数 类型及说明 
hFile Long,指定一个文件、管道或通信设备的句柄 
lpOverlapped OVERLAPPED,为欲检查的I/O操作指定的一个结构 
lpNumberOfBytesTransferred Long,用于容纳传输字节数量的一个变量 
bWait Long,如果为TRUE,就一直等到异步操作结束才返回。FALSE表示立即返回 


GetPrivateProfileInt 

VB声明 
Declare Function GetPrivateProfileInt Lib "kernel32" Alias "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal nDefault As Long, ByVal lpFileName As String) As Long 
说明 
为初始化文件中指定的条目获取一个整数值 
返回值 
Long,找到的条目的值;如指定的条目未找到,就返回默认值。如找到的数字不是一个合法的整数,函数会返回其中合法的一部分。如,对于“xyz=55zz”这个条目,函数返回55。这个函数也能理解采用标准C语言格式的十六进制数字:用0x作为一个十六进制数字的前缀——所以0x55ab等价于vb的&H55AB 
参数表 
参数 类型及说明 
lpApplicationName String,指定在其中查找条目的小节。注意这个字串是不区分大小写的 
lpKeyName String,欲获取的设置项或条目。这个支持不区分大小写 
nDefault Long,指定条目未找到时返回的默认值 
lpFileName String,初始化文件的名字。如果没有指定完整的路径名,windows就会在Windows目录中搜索文件 
注解 
在Windows NT中,有些初始化文件实际是在注册表中。可在注册表的下面这个项处找到这些文件的一个列表:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping
 

GetPrivateProfileSection 

VB声明 
Declare Function GetPrivateProfileSection Lib "kernel32" Alias "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long 
说明 
获取指定小节所有项名和值的一个列表 
返回值 
Long,装载到lpReturnedString缓冲区的字符数量。如缓冲区的容量不够大,不能容下所有信息,就返回nSize-2 
参数表 
参数 类型及说明 
lpAppName String,欲获取的小节。注意这个字串不区分大小写 
lpReturnedString String,项和值字串的列表。每个字串都由一个NULL字符分隔,最后一个字串后面用两个NULL字符中止 
nSize Long,lpReturnedString缓冲区的大小。在windows系统中最大值为32767 
lpFileName String,初始化文件的名字。如没有指定完整路径名,windows就在Windows目录中查找文件 
注解 
参考对GetPrivateProfileInt函数的注解
 

GetPrivateProfileString 

VB声明 
Declare Function GetPrivateProfileString& Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) 
说明 
为初始化文件中指定的条目取得字串 
返回值 
Long,复制到lpReturnedString缓冲区的字节数量,其中不包括那些NULL中止字符。如lpReturnedString缓冲区不够大,不能容下全部信息,就返回nSize-1(若lpApplicationName或lpKeyName为NULL,则返回nSize-2) 
参数表 
参数 类型及说明 
lpApplicationName String,欲在其中查找条目的小节名称。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载这个ini文件所有小节的列表 
lpKeyName String,欲获取的项名或条目名。这个字串不区分大小写。如设为vbNullString,就在lpReturnedString缓冲区内装载指定小节所有项的列表 
lpDefault String,指定的条目没有找到时返回的默认值。可设为空("") 
lpReturnedString String,指定一个字串缓冲区,长度至少为nSize 
nSize Long,指定装载到lpReturnedString缓冲区的最大字符数量 
lpFileName String,初始化文件的名字。如没有指定一个完整路径名,windows就在Windows目录中查找文件 
注解 
如lpKeyName参数为vbNullString,那么lpReturnedString缓冲区会载入指定小节所有设置项的一个列表。每个项都用一个NULL字符分隔,最后一个项用两个NULL字符中止。也请参考GetPrivateProfileInt函数的注解
 
其他 
在vb的api文本查看器中复制的声明为:Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long 


GetProfileInt 

VB声明 
Declare Function GetProfileInt Lib "kernel32" Alias "GetProfileIntA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal nDefault As Long) As Long 
说明 
取得win.ini初始化文件中指定条目的一个整数值 
返回值 
Long,找到条目的值;如指定的条目未找到,就返回默认值。如找到的数字不是一个合法的整数,函数就会返回其中合法的一部分。例如,对于“xyz=55zz”这个条目,函数会返回55。这个函数也能理解采用标准C语言格式的十六进制数字:用0x作为一个十六进制数字的前缀——所以0x55ab等价于vb的&H55AB 
参数表 
参数 类型及说明 
lpAppName String,欲在其中搜索条目的小节名。这个字串不区分大小写 
lpKeyName String,欲获取的项名或条目名。这个字串不区分大小写 
nDefault Long,指定在条目未找到时返回的默认值 
注解 
参考对GetPrivateProfileInt函数的注解
 

GetProfileSection 

VB声明 
Declare Function GetProfileSection Lib "kernel32" Alias "GetProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long 
说明 
获取指定小节(在win.ini文件中)所有项名和值的一个列表 
返回值 
Long,装载到lpReturnedString缓冲区的字符数量。如缓冲区的长度不足以容下所有信息,则返回nSize-2 
参数表 
参数 类型及说明 
lpAppName String,欲获取的小节。这个字串不区分大小写 
lpReturnedString String,用于容纳项和值字串列表的一个缓冲区。每个字串都用一个NULL分隔,最后一个字串用两个NULL字符中止 
nSize Long,lpReturnedString缓冲区的大小,在windows 95中最大为32767 
注解 
参考GetPrivateProfileInt函数的注解
 

GetProfileString 

VB声明 
Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long 
说明 
为win.ini初始化文件中指定的条目取得字串 
返回值 
Long,复制到lpReturnedString缓冲区的字节数量,其中不包括那些NULL中止字符。如lpReturnedString缓冲区不够大,不能容下全部信息,就返回nSize-1(若lpAppName或lpKeyName为NULL,则返回nSize-2) 
参数表 
参数 类型及说明 
lpAppName String,要在其中查找条目的小节名。这个字串不区分大小写。如果为vbNullString,则在lpReturnedString缓冲区装载这个.ini文件的所有小节的一个列表 
lpKeyName String,欲获取的项名或条目名。这个字串不区分大小写。如果为vbNullString,则在lpReturnedString缓冲区装载指定小节内所有项的一个列表 
lpDefault String,指定条目未找到时返回的默认值。可设为空("") 
lpReturnedString String,指定一个预先初始化好的字串缓冲区,长度至少为nSize个字符 
nSize Long,装载到lpReturnedString缓冲区的最大字符数 
注解 
如lpKeyName参数为零,那么lpReturnedString缓冲区会载入指定小节内所有设置项的一个列表。每个项都用一个NULL字符分隔,最后那个项用两个NULL字符中止
 

GetShortPathName 

VB声明 
Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathName" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long 
说明 
获取指定文件的短路径名 
返回值 
Long,装载到lpszShortPath缓冲区的字符数量。如lpszShortPath的长度不足,不能容下文件名,就返回需要的缓冲区长度 
参数表 
参数 类型及说明 
lpszLongPath String,指定欲获取短路径名的那个文件的名字。可以是个完整路径,或者由当前目录决定 
lpszShortPath String,指定一个缓冲区,用于装载文件的短路径和文件名 
cchBuffer Long,lpszShortPath缓冲区长度 


GetSystemDirectory 

VB声明 
Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long 
说明 
这个函数能取得Windows系统目录(System目录)的完整路径名。在这个目录中,包含了所有必要的系统文件。根据微软的标准,其他定制控件和一些共享组件也可放到这个目录。通常应避免在这个目录里创建文件。在网络环境中,往往需要管理员权限才可对这个目录进行写操作 
返回值 
Long,装载到lpBuffer缓冲区的字符数量。如lpBuffer不够大,不能容下文件名,则返回要求的缓冲区长度 
参数表 
参数 类型及说明 
lpBuffer String,用于装载系统目录路径名的一个字串缓冲区。它应事先初始化成nSize+1个字符的长度。通常至少要为这个缓冲区分配MAX_PATH个字符的长度 
nSize Long,lpBuffer字串的最大长度 


GetTempFileName 

VB声明 
Declare Function GetTempFileName Lib "kernel32" Alias "GetTempFileNameA" (ByVal lpszPath As String, ByVal lpPrefixString As String, ByVal wUnique As Long, ByVal lpTempFileName As String) As Long 
说明 
这个函数包含了一个临时文件的名字,它可由应用程序使用 
返回值 
Long,最终用于生成文件名的wUnique数字的值。如wUnique参数不为零,这就是参数的值。零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
lpszPath String,临时文件使用的目录。通常用GetTempPath函数获得 
lpPrefixString String,要使用的文件名前缀。头三个字符作为文件名前缀使用 
wUnique Long,追加到前缀字串后面的数字。如果为0,则这个函数会用一个随机数字生成文件。随后,它会检查是否存在同名的文件。如果存在,函数会增加这个数字,并继续尝试,直到生成一个独一无二的名字为止。文件在驱动器上会以长度为0字节的形式保存。如果不为零,就不会创建文件,而且函数不会核实它是否一个独一无二的文件名 
lpTempFileName String,用于装载新建临时文件名的缓冲区,这个缓冲区的长度至少应为MAX_PATH个字符 
注解 
函数使用的文件名肯定采用ANSI字符集。临时文件不会被windows自动删除
 

GetTempPath 

VB声明 
Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long 
说明 
获取为临时文件指定的路径 
返回值 
Long,装载到lpBuffer的字符数。如当前缓冲区的长度不够,不能容下整个路径,则返回lpBuffer需要的长度。零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
nBufferLength Long,lpBuffer字串的长度 
lpBuffer String,用于装载临时文件路径的一个预初始化字串 
注解 
临时路径是由TMP环境变量指定的一个路径。如TMP不存在,则是由TEMP环境变量指定的路径。如果这两个环境变量都不存在,就是当前目录
 

GetVolumeInformation 

VB声明 
Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long 
说明 
获取与一个磁盘卷有关的信息 
返回值 
Long,非零表示成功,零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
lpRootPathName String,欲获取信息的那个卷的根路径 
lpVolumeNameBuffer String,用于装载卷名(卷标)的一个字串 
nVolumeNameSize Long,lpVolumeNameBuffer字串的长度 
lpVolumeSerialNumber Long,用于装载磁盘卷序列号的变量 
lpMaximumComponentLength Long,指定一个变量,用于装载文件名每一部分的长度。例如,在“c:\component1\component2.ext”的情况下,它就代表component1或component2名称的长度 
lpFileSystemFlags Long,用于装载一个或多个二进制位标志的变量。对这些标志位的解释如下: 
FS_CASE_IS_PRESERVED 文件名的大小写记录于文件系统 
FS_CASE_SENSITIVE 文件名要区分大小写 
FS_UNICODE_STORED_ON_DISK 文件名保存为Unicode格式 
FS_PERSISTANT_ACLS 文件系统支持文件的访问控制列表(ACL)安全机制 
FS_FILE_COMPRESSION 文件系统支持逐文件的进行文件压缩 
FS_VOL_IS_COMPRESSED 整个磁盘卷都是压缩的 
lpFileSystemNameBuffer String,指定一个缓冲区,用于装载文件系统的名称(如FAT,NTFS以及其他) 
nFileSystemNameSize Long,lpFileSystemNameBuffer字串的长度 


GetWindowsDirectory 

VB声明 
Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long 
说明 
这个函数能获取Windows目录的完整路径名。在这个目录里,保存了大多数windows应用程序文件及初始化文件 
返回值 
Long,复制到lpBuffer的一个字串的长度。如lpBuffer不够大,不能容下整个字串,就会返回lpBuffer要求的长度。零表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
lpBuffer String,指定一个字串缓冲区,用于装载Windows目录名。除非是根目录,否则目录中不会有一个中止用的“\”字符 
nSize Long,lpBuffer字串的最大长度 


hread 

VB声明 
Declare Function hread Lib "kernel32" Alias "_hread" (ByVal hFile As Long, lpBuffer As Any, ByVal lBytes As Long) As Long 
说明 
参考lread 
注解 
这个函数在win16中用于读取大于64KB的数据块。但win32的文件I/O函数并不受这个64KB的限制