本文由 发布,转载请注明出处,如有问题请联系我们! 发布时间: 2021-08-01shfileoperation返回值-解除shfileoperation异常处理
加载中第四,应用API函数解决文档。
根据前三种方式的详细介绍,你觉得是否足够?是的,前边的方式能够解决基本上任何的文档实际操作。可是为了更好地普及化API,展现它的风采,最终介绍一下怎么使用API函数解决文档。
大家都听闻过API的杀伤力,在文档实际操作层面,API当然不稍逊。
留意:为了更好地简约考虑,大家先得出API函数的名字解析函数,API函数的详细申明和变量定义也不详尽诠释了,只在实例中得出详细使用方法。
(一)生产加工控制器和文件目录。
下列是Windows中给予的实际操作文件目录的API函数以及作用:
Createdirectory,createdirectoryex建立一个新文件目录。
GetCurrentDirectory将文件列表载入到堆栈中。
获得diskfreespace,获得diskfreespaceex以获得相关硬盘机构的信息内容,并掌握空中间的剩下容积。
GetDriveType明确磁盘驱动器的种类。
获得特定文档的详细路径名。
GetLogicalDrives明确系统中存有什么逻辑驱动器号。
GetLogicalDriveStrings获得包括全部当今逻辑驱动器的根控制器途径的字符串数组。
这一涵数能够获得Windows系统文件目录的详细路径名。该文件目录包括全部必需的安装文件。依据微软公司的规范,别的订制控制和一些共享资源部件还可以放到这一文件目录中。您一般应当防止在这里文件目录中创建文件。在网络空间中,管理人员常常必须载入该文件目录。
获得为临时文件夹特定的途径。
获得硬盘卷的信息内容。
GetWindowsDirectory这一涵数能够获得Windows文件目录的详细路径名。在该文件目录中,储存了大部分windows应用软件文档和复位文档。
删除目录删掉特定的文件目录。
设定文件列表。
设定卷标识设定硬盘的卷标识。
下列是一些实例,能够掌握更多的有关关键作用以及使用方法的信息内容:
1.获得逻辑驱动器
作用:明确系统中存有什么逻辑驱动器号。
申明涵数getlogicaldrivers lib“kernel 32”别称“getlogicaldrivers”()为long。
叙述:这一涵数的传参种类是Long,这一构造中的二进制位表明存有什么控制器。在其中位0设定为1,表明系统软件中存有驱动软件A;将位1设定为1表明存有b:driver;拙劣的对比
实例:
公共性子获得逻辑驱动器()
越来越一样长,越来越一样长,越来越一样长
LDs = GetLogicalDrives
sDrives = "可以用控制器:"
针对Cnt = 0至25
假如(LDs和2 ^ Cnt) 0,则
sDrives = sDrives " " Chr$(65 Cnt)
假如…便会完毕
下一个Cnt
MsgBox sDrives
尾端连接头
在上面的事例中,大家根据二进制运算将传参转化成标识符。假如您的设备上面有C.D.E.F.G和H控制器,那麼LDs值是252,它被变换为二进制111100,从左往右先后表明A.B.C.D.…。0的表述中沒有那样的控制器号。你能自身试一下。
2.获得推动种类
作用:明确磁盘驱动器的种类。
申明:申明涵数getdrivetypelib“kernel 32”别称“getdrivetypea”(byval n drive为字符串数组)的长短。
表明:此涵数的传参种类为Long。假如控制器不鉴别它,它将回到零。假如特定的文件目录不会有,则回到1。假如实行取得成功,请应用下列任一变量定义来特定控制器种类:DRIVE_REMOTE(表明硬盘能够从控制器中取下,一般是软盘驱动器).DRIVE_FIXED(硬盘不可以从控制器中取下,一般是当地电脑硬盘).DRIVE _ REMOTE(控制器是远程控制网络驱动器).DRIVE_CDROM(控制器是光盘驱动器)或DRIVE_RAMDISK(控制器是随机存储器储存器)。
主要参数为字符串类型,包括控制器网站根目录途径的字符串数组。
该涵数的作用与FSO的推动目标的推动种类特性同样。
实例:
界定变量定义自变量。
“Private const drive _ cdrom = 5”表明光盘驱动器。
“Private const drive _ fixed = 3”表明磁盘驱动器。
“Private const drive _ RAMdisk = 6”表明ram控制器。
“Private const drive _ remote = 4”表明网络驱动器。
“Private const drive _ removable = 2”表明软盘驱动器。
独享子获得推动种类()
黯淡的溫度一样长
temp = get drive type(" d:\ ")d摄:磁盘驱动器种类。
挑选实例溫度
实例驱动光盘
MsgBox“DRIVE _ CDROM:光盘驱动器”
实例推动_固定不动
MsgBox“DRIVE _ FIXED:磁盘驱动器”
Case DRIVE_RAMDISK
msgbox“drive _ ram disk:ram控制器”
Case DRIVE_REMOTE
MsgBox“DRIVE _ REMOTE:网络驱动器”
Case DRIVE _ REMOVABLE
MsgBox“DRIVE _ REMOVE:软盘驱动器”
完毕挑选
尾端连接头
3.GetDiskFreeSpaceEx
作用:获得相关硬盘机构和空中间剩下容积的信息内容。
申明涵数getdiskfreespaceex lib“kernel 32”别称“getdiskfreespaceexa”(byval lprootpathename为字符串数组,lpFreeBytesAvailableToCaller为LARGE_INTEGER,lpTotalNumberOfBytes为LARGE_INTEGER,lpTotalNumberOfFreeBytes为LARGE_INTEGER)为Long
表明:此涵数的传参种类为Long,非零表明取得成功,零表明不成功。设定了GetLastError。
在选用FAT16文件格式的windows95系统软件中,假如一个控制器(系统分区)的容积超出2GB,则不可应用该作用。这时,该涵数鉴别的较大系统分区容积仅为2GB。
主要参数叙述:
LpRootPathName字符串数组,不包括卷名的硬盘根路径名。
lpbytesavailable locator large _ integer,特定一个自变量来储存启用即可用的字节。
Lpalnumberofbytes large _ integer,特定一个自变量来储存硬盘上的字节数数量。
total number of free bytes large _ integer,特定一个自变量来储存硬盘上可以用的字节。
LARGE _ INTEGER构造用以表明64位有标记整数金额值,其界定如下所示:
输入“大整数金额”8字节数
低部一样长
高分数段为长
完毕种类
低一部分为长,特定低32位,高一部分为长,特定高32位。
实例:尽管该涵数鉴别的较大系统分区容积仅有2gb,但针对超过2GB的系统分区,根据调节依然能够得到恰当的容积。下边的调节公式计算就是我自身根据反算下出去的,可是基本原理并不是很清晰,能够测试一下。
独享Sub Get_DiskFreeSpaceEx()
变光溫度一样长,Dms$
Dim tempa,tempb,tempc
将网站根目录路径名改成字符串数组
dim freebytesavailable to caller As LARGE _ INTEGER
二进制总字节为大整数金额
dim total numberofreebytes As LARGE _ INTEGER
RootPathName = "d:"
获得硬盘空。
temp = GetDiskFreeSpaceEx(root pathname,FreeBytesAvailabletoCaller,TotalNumberOfBytes,TotalNumberOfFreeBytes)
Dms = Dms ”硬盘容积:“ vbCrLf。
tempa = total number of bytes . high part * 2 32 IIF(totalnumberofbytes.lowdart > 0,total number of bytes . low dart,totalnumberofbytes.lowdart 2 32)'测算能力。
Dms = Dms CStr(tempa) “byte” vbCrLf。
tempa = Format(tempa/1024/1024/1024,“0.00”)
Dms = Dms tempa "G" vbCrLf
获得可以用硬盘空。
Dms = Dms “可以用硬盘空: vbCrLf。
tempb = totalnumberoffreebytes . high part * 2 32 IIF(totalnumberoffreebytes.lowbat > 0,totalnumberoffreebytes . low bat,totalnumberoffreebytes . low bat 2 32)测算。
Dms = Dms CStr(tempb) “byte” vbCrLf。
tempb =文件格式(tempb / 1024 / 1024 / 1024,“0.00”)
Dms = Dms tempb “G” vbCrLf
应用硬盘空。
Dms = Dms “应用的硬盘空: vbCrLf。
tempc = tempa–tempb
Dms = Dms CStr(tempc) “G” vbCrLf
MsgBox Dms
尾端连接头
4.建立文件目录,建立文件目录
作用:建立一个新文件目录。
申明:
申明涵数CreateDirectory & Lib“kernel 32”别称“CreateDirectoryA”(ByVal lpnew directory As String,lpSecurityAttributes As SECURITY _ ATTRIBUTES)
申明涵数CreateDirectoryEx & Lib“kernel 32”别称“CreateDirectoryExA”(ByVal lpTemplateDirectory As String,ByVal lpNewDirectory As String,lpSecurityAttributes As SECURITY _ ATTRIBUTES)
表明:此涵数的传参种类为Long,非零表明取得成功,零表明不成功。设定了GetLastError。
主要参数叙述:
LpTemplateDirectory String,特定从这当中拷贝默认设置特性的模版文件目录的名字(比如文件目录中文件下载的默认设置缩小方式)。假如设定为vbNullString,将不容易应用该模版。
新文件目录字符串数组,新文件目录的名字。
lpsecurityattributes security _ attributes,这一构造界定了文件目录的安全性特点——假如电脑操作系统适用得话。
实例:
独享子建立文件目录()
将安全系数模糊不清为安全系数特性
建立文件目录。
Ret& =建立文件目录(“C:\文件目录”,安全系数)
假如回到0,它将不成功。
假如Ret& = 0,则MsgBox“不正确:建立不成功!”,vbCritical vbOKOnly
尾端连接头
5.删除目录
作用:删掉一个文件目录。
申明:申明涵数remove directory lib“kernel 32”别称“remove directory ya”(byval LP路径名为字符串数组)的长短。
表明:此涵数的传参种类为Long,非零表明取得成功,零表明不成功。设定了GetLastError。
启用此涵数以前,文件目录务必是空。
主要参数叙述:
LpPathName是字符串数组,即要删掉的文件目录的名字。
实例:
独享子删除目录()
将安全系数模糊不清为安全系数特性
CreateDirectoryEx "C:\Windows "," C:\Temp ",安全系数
删除目录。
删除目录“C:\Temp”
尾端连接头
6.设定文件列表
作用:设定文件列表,类似VBA句子ChDir。
申明涵数setcurrentdirectory lib“kernel 32”别称“setcurrentdirectorya”(byval LP路径名为字符串数组)一样长。
表明:此涵数的传参种类为Long,非零表明取得成功,零表明不成功。设定了GetLastError。
主要参数叙述:
LpPathName字符串数组,新的文件列表的途径。
实例:
setcurrent directory“d:\””将d:设定为文件列表。
7.获得系统目录
涵数:这一涵数能够获得Windows系统文件目录的详细路径名。该文件目录包括全部必需的安装文件。依据微软公司的规范,别的订制控制和一些共享资源部件还可以放到这一文件目录中。您一般应当防止在这里文件目录中创建文件。在网络空间中,管理人员常常必须载入该文件目录。
申明涵数getsystemdirectorylib "kernel32 "别称" getsystemdirectorya "(byval lpbuffer为字符串数组,byval nsize为long)一样长。
叙述:这一涵数的传参种类是Long,运载到lpBuffer缓冲区域的字符数。假如lpBuffer不足大,无法保存文件夹名称,则回到需要的缓冲区域长短。
主要参数叙述:
LpBuffer String,用以载入系统目录路径名的字符串数组缓冲区域。应当提早复位为nSize 1字符。一般,最少应是该缓冲区域分派MAX_PATH标识符。
NSize Long,lpBuffer字符串数组的最大的长短。
实例:
独享子获得系统目录()
暗如弦,长如弦
建立缓冲区域。
室内空间=室内空间(255)
获得系统目录。
Ret = GetSystemDirectory(sSave,255)
清除不必要的0。
sSave =左$(sSave,Ret)
表明途径。
MsgBox "系统目录:" sSave。
尾端连接头
(2)解决文档。
下列是windows中为实际操作文档给予的API函数以及作用:
CloseHandle关掉一个核心目标。包含文档.文档投射.过程.进程.安全性和同歩目标等。
CompareFileTime依据FileTime构造的信息内容较为2个文档的時间。
拷贝文档拷贝文档。留意:您只有拷贝文档,不可以拷贝文件目录。
这是一个功能完善的作用,能够开启和创建文件.管路.电子邮件扩展槽.通信服务.机器设备和控制面板。
删掉删除文件特定的文档。
FindClose关掉由FindFirstFile函数建立的检索返回值。
FindFirstFile依据文件夹名称查找文件。
FindNextFile依据启用FindFirstFile函数时选定的文件夹名称搜索下一个文档。
更新文档缓冲区域更新特定文件句柄的內部文档缓冲区域。
GetBinaryType明确文档是不是能够实行。
GetFileAttributes明确特定文档的特性。
GetFileInformationByHandle这一涵数能够获得上边全部涵数都能够得到的信息内容,例如尺寸.特性等。,还涉及一些在别的地区没法得到的信息内容,如文档卷标.数据库索引和连接信息内容。
GetFileSize明确文档长短。
GetFileTime获得特定文档的时长信息内容。有三个文档時间:建立時间.上次访问時间和之前载入時间。
GetFileType在得出文件句柄的条件下分辨文件属性。
GetFileVersionInfo从适用版本号标识的控制模块中获得文档版本信息。
GetFileVersionInfoSize分辨包括版本号資源的文档必须多少的缓冲区域来储存文档版本信息。
getfullpath获得文件路径,这一涵数获得文档的详细路径名。留意:仅有当文件在文件列表里时,
結果是合理的。假如你要寻找真真正正的途径。应当应用GetModuleFileName函数。
获得特定文档的短路径名。
GetTempFileName函数包括一个临时文件夹的名字,应用软件能够应用它。
获得Windows临时性文件目录途径。
Lclose关掉其他的文档,其他信息请参照CloseHandle函数。
建立一个文档。假如文档早已存有,它将被减少到零长短,并开启开展读写能力。
Llseek设定文档中当今的读写能力部位。该涵数类似vba的seek句子。
锁住文档在对话框中,一个程序能够以共享资源方式开启——在这样的情形下,好几个过程能够与此同时浏览该文件。
拥有这些作用,要想读写能力文档的应用软件能够锁住文档的一部分来制做它。
别的应用软件无法打开它。那样就规避了与此同时读写能力时的矛盾。
Lockex类似LockFile,仅仅它给予了大量的作用。
Lopen以二进制方式开启其他的文档。
Lread将资料中的数据信息读取内存缓冲区。
Lwrite将数据信息从内存缓冲区载入文档。
挪动文档,挪动文档挪动文档。假如dwFlags设定为零,则MoveFile彻底相当于MoveFileEx。
OpenFile是一个能够实行很多不一样文档实际操作的涵数。与此作用对比,请首先考虑到CreateFile作用。
(能够开启命名管道,操纵Unicode文件夹名称,不会受到128标识符路径名限定。)
ReadFile文本文件中获取数据。与lread作用对比,该作用显而易见更为灵便。该作用能够运作。
通讯设备.管路.电源插座和信筒。
Readex类似ReadFile,仅仅它只有用以多线程载入实际操作,而且包括一个完全的回调函数。
检索途径搜索特定的文档。
SetEndOfFile将当今文档部位设定为打开文件的末尾。
Setattributes SetFileAttributes。
SetFilePointer设定文档中当今的读写能力部位。
SetFileTime设定文档的建立.浏览和最终修改时间。
开启文档。
开启文档。
WriteFile将信息载入文档。该涵数比lwrite函数灵便得多。此作用可以使用于成双的。
通讯设备.管路.电源插座和信筒的解决。
WriteFileEx类似writefile,仅仅它只有用以多线程写实际操作,而且包括一个完全的回调函数。
文档的缩小和压缩包解压。
LZOpenFile开启压缩包开展载入。
LZSeek在压缩包中寻找一个部位。
LZRead载入压缩包。
LZClose关掉压缩包。
LZCopy拷贝压缩包,并在处理中拓展他们。
GetExpandedName回到压缩包的文件夹名称。
下列是一些实例,能够掌握更多的有关关键作用以及使用方法的信息内容:
1.创建文件
作用:这是一个功能完善的方法,能够开启和创建文件.管路.电子邮件扩展槽.通信服务.机器设备和控制面板。
申明:
申明涵数CreateFile Lib“kernel 32”别称“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 _ beyond _ EXISTS。
开启一个通讯端口号(例如COM1),并将其设定为OPEN_EXISTING。
这一涵数替代了lOpen和lCreate函数,应该是大家的优选。
主要参数叙述:
lpFileName字符串数组,要开启的文档的名字。
dwDesiredAccess Long,如果是GENERIC_READ,表明容许对机器设备开展读浏览;假如GENERIC_WRITE表明容许对机器设备开展写访问(能够组成应用);假如为零,则代表着只容许与一个机器设备有关的信息内容。
dwShareMode Long,零表明不共享资源;FILE_SHARE_READ和/或FILE_SHARE_WRITE表明容许共享文档浏览。
lpsecurityattributes SECURITY_ATTRIBUTES,一个偏向SECURITy _ ATTRIBUTES构造的表针,界定文档的安全性特点(假如电脑操作系统适用)。
数据信息建立部位
Long,下列变量定义之一:
CREATE_NEW建立一个文档;假如文档存有,可能发生不正确。
CREATE_ALWAYS建立一个文档并遮盖之前的文档。
OPEN_EXISTING文档务必早已存有。机器设备规定。
假如文档不会有,请自始至终建立一个文档。
TRUNCATE_EXISTING表明目前文档被减少到零长短。
dwFlagsAndAttributes
Long,下列一个或好几个参量。
FILE _ ATTRIBUTE _ ARCHIVE标识了归档特性。
FILE _ ATTRIBUTE _ COMPRESSED将文档标识为已缩小或文件目录中文件下载的默认设置缩小方式。
FILE_ATTRIBUTE_NORMAL默认设置特性。
FILE_ATTRIBUTE_HIDDEN隐藏文件夹或文件目录。
FILE_ATTRIBUTE_READONLY文档是可读写的。
文件名后缀安装文件是一个安装文件。
FILE_FLAG_WRITE_THROUGH电脑操作系统不可延迟对资料的写实际操作。
容许对资料开展重合实际操作。
文档标示无缓存严禁缓存文档。文档只有载入硬盘卷的扇区块链。
FILE _ FLAG _ RANDOM _ ACCESS为任意浏览提升文档缓存。
文档标示次序扫描仪提升文档缓存以完成持续浏览。
关掉最后一个开启的返回值后,删除文件夹。尤其合适临时文件夹。
下列变量定义标识还可以在Windows NT下组成应用:
安全性_密名.安全性_鉴别.安全性_仿真模拟.安全性_授权委托.安全性_前后文_追踪.安全性_合理_仅
Htemplatefilelong,假如不是零,请特定一个文件句柄。新文件名将拷贝该文件的扩大特性。
事例如下所示:
lngHandle = create FILE(" c:\ text . txt ",GENERIC_WRITE,FILE_SHARE_READ或FILE_SHARE_WRITE,ByVal 0&,OPEN _ ALUME,0,0)
上边的编码根据撰写打开文件,假如文档不会有,则建立该文件。
2.造就
作用:创建文件。假如文档早已存有,它将被减少到零长短,并开启开展读写能力。
申明:申明涵数lcreate lib“kernel 32”别称“_ lcreate”(byval LP路径名为string,byval iattribute为long)为long。
表明:此涵数的传参种类为Long。假如实行取得成功,它将回到打开文件的返回值。发生不正确时,回到HFILE_ERROR。
此涵数开启的文档已被另一个应用软件开启,因此应用时要当心。win32 CreateFile函数已更换了此涵数。这一涵数和vb的open句子作用同样。
主要参数叙述:
LpPathName字符串数组,要建立的文档的名字。
Attributelong,下列值之一:
0——文档能够读写能力。
1-建立只读文件。
2-建立隐藏文件夹。
3-建立安装文件。
实例:
下列句子开启c: \ test.txt文件。
lcreat "c:\test.txt ",0
3.lopen
作用:以二进制方式开启其他的文档。
申明涵数lopenlib "kernel32 "别称" _ lopen" (byval LP路径名为字符串数组,byval iread写成long)一样长。
表明:此涵数的传参种类为Long。假如实行取得成功,它将回到打开文件的返回值。HFILE_ERROR表明有不正确。设定了GetLastError。
主要参数叙述:
LpPathName字符串数组,要开启的文档的名字。
IReadWrite Long,浏览方式和共享资源方式变量定义的组成,如下所示所显示:
1.浏览方式。
载入打开文件并载入其內容。
READ_WRITE打开文件并读写能力它。
WRITE打开文件并载入在其中。
2.共享资源方式(参照OpenFile函数的标示变量定义表)。
OF_SHARE_COMPAT,OF_SHARE_DENY_NONE,OF_SHARE_DENY_READ,OF_SHARE_DENY_WRITE,OF_SHARE_EXCLUSIVE
实例:
lopen "c:\test.txt ",READ
4.获取文件时间
作用:获得特定文本文档的时长信息内容。
申明涵数getfiletime lib "kernel32 "别称" getfiletime" (byval hfile为long,LP建立時间为filetime,LP lastaccess时间为filetime,LP lastwritetime为filetime)为long。
叙述:长,非零表明取得成功,零表明不成功。设定了GetLastError。
假如不用特殊的信息内容,那麼lpCreationTime.lpLastAccessTime和lpLastWriteTime都能够设定为零(应用ByVal As Long)。该涵数回到的文档時间为世界协调时文件格式。
主要参数叙述:
龙,文档的返回值。
LpCreationTime FILETIME,用以初始化文档的建立時间。
LpLastAccessTime FILETIME,用以初始化文档的最终浏览時间(FAT系统文件不兼容此作用)。
LpLastWriteTime FILETIME,用以载入文档之前改动的時间。
实例:
将文档调发展的
模糊不清建立時间做为文档時间
将上次访问時间调暗为文档時间
将上次访问時间调暗为文档時间
界定构造。
独享种类文档時间
手机流量日期時间一样长
长数据信息時间
完毕种类
str1 = "c:\text.txt "
File = lopen (str 1,read _ write)'打开文件。
Temp = getfiletime(文档.建立時间.上次访问時间.之前载入時间)来获得文档有关信息。
之上编码获得的时长信息内容为Long种类,必须根据时间转换涵数开展变换。详细实例见配件。
5.拷贝文档
作用:拷贝文档。类似vb的filecopy指令。
申明:申明涵数copyfile lib "kernel32 "别称" copy file a "(byval lpexistingfile name为字符串数组,byval lp new filename为字符串数组,byval bfaillifexists为long)。
叙述:长,非零表明取得成功,零表明不成功。设定了GetLastError。
主要参数叙述:
字符串数组,源代码名。
字符串数组,总体目标文件夹名称。
假如bFailIfExists Long设定为TRUE(非零),一旦总体目标文档早已存有,调用函数将不成功。不然,总体目标文档将被遮盖。
实例:
CopyFile "c:\test1.txt "," c:\test2.txt ",1
上边的编码将c:\test1.txt拷贝到c: \ test2.txt,详细的事例见配件。
6.挪动文档,挪动文档
实际操作:挪动文档。假如dwFlags设定为零,则MoveFile彻底相当于MoveFileEx。
申明:
申明涵数move file Lib“kernel 32”别称“move filea”(ByVal lpExistingFileName做为字符串数组,ByVal lpNewFileName做为字符串数组)
申明涵数movefile ex Lib“kernel 32”别称“movefile exa”(ByVal lpExistingFileName As String,ByVal lpNewFileName As String,ByVal dwFlags As Long)
叙述:长,非零表明取得成功,零表明不成功。设定了GetLastError。
这两个作用一般不可以将文档从一个卷挪动到另一个卷。可是,假如设定了MOVEFILE _ COPY _ ALLOWED标示,则MoveFileEx能够保证这一点。
主要参数叙述:
字符串数组,要挪动的文件夹名称。
字符串数组,新文件夹名称。
DwFlags Long,一个或好几个下列变量定义:
假如总体目标文档存有,则更换它。
假如挪动到不一样的卷,拷贝文档并删掉初始文档。
下一次重启系统软件时,将首次实行MOVEFILE _ DELAY _直到_REBOOT实际操作。那样就可以在Windows NT中变更安装文件。
实例:
private Const MOVEFILE _ COPY _ ALLOPED = & H2
专用型变量定义挪动文档_延迟时间_直至_重新启动= &H4
独享变量定义挪动文档_更换_目前= &H1
move file“c:\ test . txt”,“d: \ test1.txt”挪动文档。
Moveleex "d: \ test1.txt "," c: \ test.txt ",movefile _ copy _ allowed '再度挪动。
上边的编码完成了文档挪动。2次挪动后,文档维持不会改变。
7.删除文件夹
作用:删掉特定的文档。
申明:申明涵数delete filelib“kernel 32”别称“delete filea”(byval LP filename做为字符串数组)的长短。
叙述:长,非零表明取得成功,零表明不成功。设定了GetLastError。
类似vba的kill句子,在windows 95下当心应用这一涵数——即便文档当今正被应用软件开启,这一涵数也会删掉它。
主要参数叙述:
字符串数组,要删掉的文档的名字。
实例:
删掉“c:\test.txt”删掉c: \ test.txt文件。
相关的详细实例,请参考配件。
8.读取文件
作用:文本文件中获取数据。与lread作用对比,该作用显而易见更为灵便。该作用能够实际操作通讯设备.管路.电源插座和电子邮件扩展槽。
申明:独享申明涵数readfile lib“kernel 32”别称“readfile”(byval hfile As Long,lpbuffer as any,byval nnumberofbyestoreadas long,lpNumberOfBytesRead As Long,lpOverlapped As OVERLAPPED)As Long
叙述:长,非零表明取得成功,零表明不成功。设定了GetLastError。假如运行多线程载入实际操作,该涵数将回到一个零值,并将ERROR_IO_PENDING设定为GetLastError的結果。假如結果不以零,但读取的字节低于nNumberOfBytesToRead主要参数特定的值,则表明早已抵达文档的末尾。
主要参数:
HFile —- Long,文档的返回值。
一切用以储存读取数据信息的缓冲区域。
numberfbytorread–long,要读取的字符数。
lpnumberofbytes read–long,具体文本文件中载入的字符数。
Lpoverlapped-overlapped,假如在打开文件时特定了FILE_FLAG_OVERLAPPED,那麼这一主要参数务必用于引入一个独特的构造。该构造界定了多线程载入实际操作。不然,此参数应设定为空(将函数声明为ByVal As Long,并传送零值)。
实例:相关详细的实例,请参考配件。
9.写文档
作用:将信息载入文档。该涵数比lwrite函数灵便得多。该作用也可使用于通讯设备.管路.电源插座和电子邮件扩展槽的解决。
申明:申明涵数write file lib“kernel 32”别称“write file”(byval hfile As Long,lpbuffer as any,byval nnumberofbytowrite as long,lpNumberOfBytesWritten As Long,lpOverlapped As OVERLAPPED)As Long
表明:长,真(非零)表明取得成功;不然,回到零。设定了GetLastError。
主要参数:
Hfile-long,文档的返回值。
一切要载入的数据信息缓冲区域。
number of bytowrite–long,载入数据信息的字节。载入零字节数代表着不载入一切內容,但文档的“之前修改时间”会升级。坐落于远程控制系统软件中的命名管道限定为65535字节数。
lpnumberofbytes written–long,具体载入文档的字节。
Lpoverlapped-overlapped,假如在特定FILE_FLAG_OVERLAPPED的条件下打开文件,这一主要参数务必引入一个独特的构造。该构造界定了多线程写实际操作。不然,应将基本参数为空(将申明更改成ByVal As Long并传送零值)。
实例:相关详细的实例,请参考配件。
10.SHFileOperation
作用:这一作用十分强劲,能够拷贝.挪动.重新命名和删除文件夹或文件夹名称。
申明:申明涵数shfileoperation lib "shell32.dll "别称" shfile operation a "(LP file op as shfile op struct)为长。
表明:长,真(非零)表明取得成功;不然,回到零。
主要参数:
特定文档实际操作的种类。
SHFILEOPSTRUCT种类
一样长
文档操作指南。
p来源于“做为字符串数组”的源代码或途径。
Pto字符串数组的总体目标文档或途径。
‘FFlags as integer’实际操作标示。
fAnyOperationsAborted中断時间太长
尽量长
做为字符串数组
完毕种类
实例:请参考配件。
(3)汇总。
根据之前的详细介绍,我们可以见到API在文档实际操作方便十分强劲,能够进行一些之前的方式做不到的每日任务。FileSystemObject领域模型可能是用API撰写的,即便并不是,大家还可以用API撰写一个FSO类。API是一个很大的宝藏。如果你在为某一作用皱眉的情况下,根据查询API很有可能会寻找一个令人满意的回答。