Excel VBA操作文件大全 下载本文

Private Const MOVEFILE_COPY_ALLOWED = &H2

Private Const MOVEFILE_DELAY_UNTIL_REBOOT = &H4 Private Const MOVEFILE_REPLACE_EXISTING = &H1 MoveFile \test1.txt\移动文件

MoveFileEx \Y_ALLOWED ?再一次移动 以上代码实现了文件的移动,两次移动後,文件不变 7、DeleteFile

作用:删除指定文件

声明:Declare Function DeleteFile Lib \Alias \(ByVal lpFileName As String) As Long

说明:Long,非零表示成功,零表示失败。会设置GetLastError

与vba的kill语句相似,在windows 95下使用这个函数要小心——即使文件当前正由一个应用程序打开,该函数也会将其删除. 参数说明:

lpFileName String,欲删除文件的名字 示例:

DeleteFile \删除c:\\\\test.txt文件 完整的示例见附件。 8、ReadFile

作用:从文件中读出数据。与lread函数相比,这个函数要明显灵活的多。该函数能够操作通信设备、管道、套接字以及邮槽

声明:Private Declare Function ReadFile Lib \lpBuffer As Any, ByVal nNumberOfBytesToRead As Long, lpNumberOfBytesRead As Long, lpOverlapped As OVERLAPPED) As Long

说明:Long,非零表示成功,零表示失败。会设置GetLastError。如启动的是一次异步读操作,则函数会返回零值,并将ERROR_IO_PENDING设置成GetLastError的结果。如结果不是零值,但读入的字节数小于nNumberOfBytesToRead参数指定的值,表明早已抵达了文件的结尾 参数:

hFile ---- Long,文件的句柄

lpBuffer --- Any,用于保存读入数据的一个缓冲区 nNumberOfBytesToRead - Long,要读入的字符数

lpNumberOfBytesRead - Long,从文件中实际读入的字符数

lpOverlapped --- OVERLAPPED,如文件打开时指定了FILE_FLAG_OVERLAPPED,那么必须用这个参数引用一个特殊的结构。那个结构定义了一次异步读取操作。否则,应将这个参数设为NULL(将函数声明成ByVal As Long,并传递零值) 示例:完整的示例见附件。 9、WriteFile

作用:将数据写入一个文件。该函数比lwrite函数要灵活的多。也可将这个函数应用于对通信设备、管道、套接字以及邮槽的处理

声明:Declare Function WriteFile Lib \Alias \(ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, lpOverlapped As OVERLAPPED) As Long

说明:Long,TRUE(非零)表示成功,否则返回零。会设置GetLastError

参数:

hFile --- Long,一个文件的句柄

lpBuffer --- Any,要写入的一个数据缓冲区

nNumberOfBytesToWrite - Long,要写入数据的字节数量。如写入零字节,表示什么都不写入,但会更新文件的―上一次修改时间‖。针对位于远程系统的命名管道,限制在65535个字节以内

lpNumberOfBytesWritten - Long,实际写入文件的字节数量

lpOverlapped --- OVERLAPPED,倘若在指定FILE_FLAG_OVERLAPPED的前提下打开文件,这个参数就必须引用一个特殊的结构。那个结构定义了一次异步写操作。否则,该参数应置为空(将声明变为ByVal As Long,并传递零值) 示例:完整的示例见附件。

10、SHFileOperation 作用:此函数的功能很强大,能对文件或文件夹进行复制、移动、重命名、删除的全部操作。 声明:Declare Function SHFileOperation Lib \As SHFILEOPSTRUCT) As Long

说明:Long,TRUE(非零)表示成功,否则返回零。 参数:

lpFileOp --SHFILEOPSTRUCT类型,指定文件的操作。 Type SHFILEOPSTRUCT hwnd As Long

wFunc As Long \\'对文件的操作指令 pFrom As String \\'源文件或路径 pTo As String \\'目的文件或路径 fFlags As Integer \\'操作标志 fAnyOperationsAborted As Long hNameMappings As Long lpszProgressTitle As String End Type

示例:见附件。

(三)总结

通过以上的介绍,我们可以看到API在文件操作方面功能十分强大,能够完成一些前面方法所不能完成的任务。FileSystemObject对象模型的内部可能就是用API写的,即便不是我们也可以用API写出一个FSO类来。API是一个巨大的宝库,当你为实现某个功能而愁眉不展的时候,查查API可能就能找到满意的答案。

写的这么多,希望对大家有所帮助,至少操作文件是没有什么问题了。