常用的文件操作语句和函数
文件的操作指的是文件的删除、拷贝、移动、改名、调用等。在Visual Basic中,可以通过相应的语句及函数执行这些基本操作。
一、常用函数
1.LOF函数。返回Long型值,表示Open语句打开文件的字节数。其格式如下:
LOF(filenumber)
其中,必要的 filenumber 参数是一个 Integer,包含一个有效的文件号。
2.LOC函数。对随机文件返回上一次读或写的记录号,对二进制文件返回上次读或写的字节位置,对顺序文件返回当前字节位置除以128后的值。其格式如下:
Loc(filenumber)
其中,必要的 filenumber 参数是任何一个有效的 Integer 文件号。
3.FileLen函数。返回Long型值,表示文件的字节数。可用于未打开的文件。其格式如下:
FileLen(pathname)
其中,必要的 pathname 参数是用来指定一个文件名的字符串表达式。pathname 可以包含目录或文件夹、以及驱动器。当调用 FileLen 函数时,如果所指定的文件已经打开,则返回的值是这个文件在打开前的大小。
4.EOF函数。用于测试文件末尾。对于顺序文件当到达文件末尾时返回True。对于随机文件和二进制文件返回当前字节位置除以128后的值。其格式如下:
EOF(filenumber)
使用 EOF 是为了避免因试图在文件结尾处进行输入而产生的错误。如果到达文件的结尾,EOF 函数返回 False。对于为访问 Random 或 Binary 而打开的文件,当最后一次执行的 Get 语句无法读出完整的记录时,EOF返回 False。
对于为访问 Binary 而打开的文件,在 EOF 函数返回 True 之前,试图使用 Input 函数读出整个文件的任何尝试都会导致错误发生。在用 Input 函数读出二进制文件时,要用 LOF 和 Loc 函数来替换 EOF 函数,或者将 Get 函数与 EOF 函数配合使用。对于为 Output 打开的文件,EOF 总是返回 True。
5.FreeFile函数。返回Integer型值,代表可供Open语句使用的文件号。
FreeFile[(rangenumber)]
其中,可选的参数 rangenumber 是一个 Variant,它指定一个范围,以便返回该范围之内的下一个可用文件号。指定 0(缺省值)则返回一个介于 1 – 255 之间的文件号。指定 1 则返回一个介于 256 – 511 之间的文件号。
6.Shell函数。文件的调用利用shell函数,其调用格式如下:
Shell(pathname[,windowstyle])
其中,pathname 必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。Windowstyle 可选参数。Variant (Integer),表示在程序运行时窗口的样式。如果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。
如果 Shell 函数成功地执行了所要执行的文件,则它会返回程序的任务 ID。任务 ID 是一个唯一的数值,用来指明正在运行的程序。如果 Shell 函数不能打开命名的程序,则会产生错误。缺省情况下,Shell 函数是以异步方式来执行其它程序的。也就是说,用 Shell 启动的程序可能还没有完成执行过程,就已经执行到 Shell 函数之后的语句。
二、常用语句
文件的基本操作包括文件的删除、复制、移动、改名、以下介绍相应的预计。
1.Kill语句。用于删除磁盘上的文件,其格式如下:
Kill pathname
其中,必要的pathname参数是用来指定一个文件名的字符串表达式。pathname可以包含目录或文件夹、以及驱动器。在 Microsoft Windows 中,Kill 支持多字符 (*) 和单字符 (?) 的通配符来指定多重文件。
2.Name语句,用于将文件改名,其格式如下:
Name oldpathname As newpathname
Name 语句可以重新命名文件并将其移动到一个不同的目录或文件夹中。而且Name 可跨驱动器移动文件。但当 newpathname 和 oldpathname 都在相同的驱动器中时,只能重新命名已经存在的目录或文件夹。 Name 不能创建新文件、目录或文件夹。
在一个已打开的文件上使用 Name,将会产生错误。必须在改变名称之前,先关闭打开的文件。Name 参数不能包括多字符 (*) 和单字符 (?) 的通配符。
3.FileCopy语句,用于复制文件,如果想要对一个已打开的文件使用 FileCopy 语句,则会产生错误。其格式如下:
FileCopy source, destination
其中,source 必要参数。字符串表达式,用来表示要被复制的文件名。source 可以包含目录或文件夹、以及驱动器。destination 必要参数。字符串表达式,用来指定要复制的目地文件名。destination 可以包含目录或文件夹、以及驱动器。
4.ChDirver语句,用于改变当前的驱动器,其格式如下:
ChDrive drive
其中,必要的 drive 参数是一个字符串表达式,它指定一个存在的驱动器。如果使用零长度的字符串 (""),则当前的驱动器将不会改变。如果 drive 参数中有多个字符,则 ChDrive 只会使用首字母。
5.ChDir语句,用于改变当前的目录或文件夹,其格式如下:
ChDir path
其中,必要的 path 参数是一个字符串表达式,它指明哪个目录或文件夹将成为新的缺省目录或文件夹。path 可能会包含驱动器。如果没有指定驱动器,则 ChDir 在当前的驱动器上改变缺省目录或文件夹。ChDir 语句改变缺省目录位置,但不会改变缺省驱动器位置。例如,如果缺省的驱动器是 C,则下面的语句将会改变驱动器 D 上的缺省目录,但是 C 仍然是缺省的驱动器:ChDir "D:\TMP"
6.MkDir语句,用来创建一个新的目录或文件夹,其格式如下:
MkDir path
其中,必要的 path 参数是用来指定所要创建的目录或文件夹的字符串表达式。path 可以包含驱动器。如果没有指定驱动器,则 MkDir 会在当前驱动器上创建新的目录或文件夹。
7.RmDir语句,用来删除一个存在的目录或文件夹,其格式如下:
RmDir path
其中,必要的 path 参数是一个字符串表达式,用来指定要删除的目录或文件夹。path 可以包含驱动器。如果没有指定驱动器,则 RmDir 会在当前驱动器上删除目录或文件夹。
如果想要使用 RmDir 来删除一个含有文件的目录或文件夹,则会发生错误。在试图删除目录或文件夹之前,先使用 Kill 语句来删除所有文件。