VB考试教程:文件处理函数

三、VB6.0的文件处理函数

在VB6.0中,除了可以利用文件控件来对文件进行处理外,还可以通过一些函数和方法来处理文件,常用的文件处理函数和方法有Kill,FileCopy.RmDir,Shell和Name等。

1、 Kill 语句

Kill语句的功能是从磁盘中删除文件,它的语法结构如下:

  Kill pathname

其中参数pathname是用来指定一个文件名的字符串表达式,pathname要包含文件所在的目录(文件夹)以及驱动器。

Kill支持多字符(*)和单字符(?)的统配符来指定多重文件。例如:

    kill"c:/xy/*.bak"

将删除c盘xy目录下的备份文件。

Kill语句具有一定的“危险性”,因为在执行该语句时没有任何提示信息。

下面就是一个应用Kill语句设计应用程序的示例(见教材P336),它所能够实现的功能是可以显示一个对话框,在对话框中选择一个欲删除的文件,然后系统自动的完成删除的动作,具体的步骤如下:

(1)设计界面

首先在工具箱中添加一个CommonDialog控件,然后把它添加到空白的窗体上。

(2)添加代码  

在程序的开始运行阶段就显示一个删除文件的对话框,为此在设计阶段双击窗体,在窗体的Form_load()事件中添加下列代码:

Private Sub Form_Load()
    CommonDialog1.DialogTitle = "打开一个欲删除的文件" '设置控件的标题。
    CommonDialog1.FileName = "*.doc"
    CommonDialog1.Filter = "*.doc" '设置过滤器.
    CommonDialog1.showopen '显示对话框。
    If CommonDialog1.FileName = "*.doc" Then
    Else
        Kill CommonDialog1.FileName '删除选中的文件
    End If
End Sub

3. 保存文件,运行程序

[程序演示]

注意:在用Kill语句删除文件时,必须关闭该文件,否则出错。

2、 FileCopy 语句       

FileCopy语句的功能是复制一个文件 ,它的语法结构如下:

FileCopy source,destination

在FileCopy语句的语法中包括两个参数,其中soure用来表示要被复制的源文件名,而destination用来指定要复制的目的文件名。

在source和destination参数中都要包含文件所在的目录或文件夹以及驱动器。

下面就是一个应用FileCopy语句实现文件复制功能的程序的示例。见教材P338。

(1)设计界面

向工具箱中添加一个Commondialog控件,并且把它放置到空白的窗体上。

根据程序功能的要求,在窗体上添加两个CommandButton控件,两个TextBox控件和两个Label控件。

(2)编写程序的初始化代码  

在程序的声明中定义两个全局变量,一个用来存放源文件路径和名字,另外一个用来存储目的文件路径和名字

  Dim source as string '定义一个存储源文件路径和名字的字符串变量。

  Dim destination as string '定义一个存储目的文件的路径和名字的字符串变量。

(3)响应[打开]按钮的单击事件

在设计阶段双击“打开”按钮,在弹出的代码窗口中添加下列代码:

Private Sub Command1_click()

CommonDialog1.showopen '显示一个对话框

source=CommonDialog1.filename '存储源文件路径和名字的字符串变量

text1.text=source

End Sub

程序说明:程序首先通过CommonDialog1.show 语句来显示一个对话框,在其中用户可能选择要复制的源文件,然后把选中源文件的路径和文件名存储在变量soure中,同时通过Text1.text=source把源文件的路径和文件名显示在文本框中。

(4)响应[另存为]按钮的单击事件

在设计阶段双击“另存为”按钮,在它的Command2_Click() 事件中添加下列代码:

Private Sub Command2_click()

CommonDialog1.showsave '显示一个对话框

destination=CommonDialog1.Filename '存储目的文件路径和名字的字符串变量

Text2.text=destination '显示目的文件路径和值淖址淞俊?/FONT>

运行结果如图:

   

例2:在窗体中调用控制面板的主要设置。实现Windows属性设置的代码化。

界面:

创建命令按钮控件组。

代码:

Private Sub Command1_Click(Index As Integer)
    Dim x
    Select Case Index
        Case 0            '启动控制面板:
            x = Shell("rundll32.exe shell32.dll,Control_RunDLL")
        Case 1           '启动辅助选项面板:常规:
            x = Shell("rundll32.exe shell32.dll,Control_RunDLL access.cpl,,5")
        Case 2           '显示:
            x = Shell("rundll32.exe shell32.dll,Control_RunDLL access.cpl,,3")
        Case 3           '键盘:
            x = Shell("rundll32.exe shell32.dll,Control_RunDLL access.cpl,,1")
        Case 4           '鼠标:
            x = Shell("rundll32.exe shell32.dll,Control_RunDLL access.cpl,,4")
        Case 5           '声音:
            x = Shell("rundll32.exe shell32.dll,Control_RunDLL access.cpl,,2")
        Case 6           '启动显示设置面板:背景:
            x = Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0")
        Case 7            '外观:
            x = Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2")
        Case 8            '屏幕保护:
            x = Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1")
        Case 9            '设置:
            x = Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3")
        Case 10           '启动日期和时间设置:
            x = Shell("rundll32.exe shell32.dll,Control_RunDLL timedate.cpl")
        Case 11           '打开 IE4 的设置窗口:
            x = Shell("rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl")
    End Select
End Sub

说明:本例利用了Shell函数调用Rundll32.exe文件的功能,具体调用代码为:

    x = Shell("Rundll32.exe shell32.dll,Control_RunDLL") 

[程序演示]        [程序下载]   

4、RmDir 语句

RmDir 语句的功能是删除一个存在的而且为空的目录或文件夹,它的语法结构如下所示:

Rmdir path

其中参数Path是一个字符串表达式,用来指定要删除的目录或文件夹。如果在参数Path中没有指定驱动器,则Rmdir会在当前驱动器上删除为空的目录或文件夹。

下面就是一个综合应用Kill语句和Rmdir语句的示例,它所能够实现的功能是删除一个非空的目录。见教材P344。

(1)界面设计

在窗体上添加一个DriveListBox控件,一个DirListBox控件、一个FileListBox控件和三个CommandButton控件,并设置属性。 

  

(2)代码

响应“删除文件”按钮单击事件:  

在程序的设计阶段,双击“删除文件”按钮,在它的Command2_Click()事件中添加下列代码:

Private Sub Command2_Click()

Kill File1.Path+"/"+File1.FileName '删除一个文件

End Sub

响应“删除目录”按钮事件:

在程序的设计阶段,双击“删除目录”按钮,在它的Command1_Click()事件中添加下列代码:

Private Sub Command1_Click()

Rmdir Dir1.Path   '删除空的目录

End Sub

响应“退出运行”按钮事件:

private sub command3_click()

  end '结束程序

end sub

驱动器、目录、文件三者同步

private sub dir1_change()

  file1.path=dir1.path '及时更改文件列表框中的内容

end sub

private sub drive1_change()

  dir1.path=drive1.drive '及时更改目录列表框中的内容

end sub

6.存储文件,运行程序 

[程序演示]        [程序下载] 

注意:Rmdir只能删除空的文件夹,如果要删除含有文件的文件夹,应先使用Kill语句删除该文件夹下的所有文件,再用Rmdir语句删除该文件夹,否则会出错。 

5、Name语句         

Name语句的功能是重新命名一个文件、目录或文件夹,也可以用来移动文件。它的语法结构如下:

  Name oldpathname As newpathname

其中包括以下两个部分:

oldpathname 为字符串表达式,由它来指定已存在的文件名和位置,即原文件名,在其中包含目录或文件夹以及驱动器。

newpathname也是字符串表达,它指定新的文件名和位置,即新文件名,同样要包含目录或文件夹以及驱动器。

Name的作用说明:

移动文件

如果newpathname所指定的路径存在并且与oldpathname有不同的路径和不同的文件名,则Name语句会将文件移到新的目录文件夹,同时重新命名文件。如:

    Name "c:/doc/unzip.exe" as "c:/windows/dounzip.exe "

将原文件unzip.exe从dos目录下移到windows目录下并重新命名为dounzip.exe。

如果newpathname所指定的路径存在并且与oldpathname有不同的路径和相同的文件名,那么Name会移动文件到新位置,并保持文件名不变。如:

    Name "c:/doc/unzip.exe" as "c:/windows/unzip.exe "

将把unzip.exe文件从dos目录下移动到windows目录下,同时在dos目录下的unzip.exe文件被删除。

重命名目录

Name语句可以移动文件,不能移动目录,但可以对目录重命名。例如:

    Name "c:/temp" as "c:/tempold"

注意:

  • 当“原文件名”不存在或“新文件名”已存在时,则会发生错误。
  • Name语句不能跨越驱动器移动文件。
  • 如果一个文件已经打开,则用Name语句重命名时将会产生错误,所以要先关闭该文件后,才能重命名。

下面是利用Name语句来移动文件的例子。见教材P348。

(1)界面设置

向工具箱中添加一个CommonDialog控件、两个TextBox控件、两个Label控件和三个CommandButton控件。

(2)代码编写

初始化代码

Private Sub Form_load()

Command1.Enabled=False '“移动”按钮无效

End sub

响应“打开”按钮单击事件

Private Sub Command3_Click()

CommonDialog1.showopen '显示一个对话框

Text1.text=CommonDialog1.FileName '显示文件路径和文件名

Command1.Enabled=True '“移动”按钮有效

End Sub

程序说明:在程序的运行过程中,当单击“打开”按钮时,就会激活Command3_Click()事件,程序首先通过CommonDialog1.show1来显示一个"打开文件"的对话框,用户在其中选择一个有效的文件后,在文本框中就会显示出文件的路径和文件名,然后设置“移动”按钮的有效状态为Ture.

响应“移动”按钮单击事件

Private Sub Command1_click()

CommonDialog1.DialogTitlek="移动文件" '设置对话框的标题

CommonDialog1.ShowSave '显示一个对话框

Text2.text=CommonDialog1.FileName '显示文件路径和文件名

str1=MsgBox("确定移动文件到"+CommonDialog1.FileName)

if str1 then

Name Text1.Text As Text2.Text

End if

End Sub

程序说明:在程序的运行过程中,当单击“移动”按钮时,就会激活Command1_Click()事件,程序首先设置对话框的标题为"移动文件",然后CommonDialog1.Show2语句来显示一个"移动文件" 的对话框,用户在其中选择一个有效的路径和文件名后,程序就会自动的弹出一个对话框,询问用户是否真的要移动文件,如果用户确认移动,就会通过Name Text1.text as Text2.text语句来移动文件 。

[程序演示]        [程序下载] 

FileCopy source,destination ' 复制文件

End Sub

6. 存储文件,运行程序

  [程序演示] 

3、 Shell 函数

我们曾介绍了通用过程的定义及调用。实际上,在VB中,还可以调用各种应用程序,也就是说,凡能够在DOS或Windows下运行的应用程序,基本上都可在VB中调用。这一功能可通过Shell函数来实现。

它的语法结构如下:

  Shell(pathname[,windowstyle])

参数说明: 

pathname为所要执行的应用程序的名称及其路径和必要的参数;

windowstyle表示在程序运行时窗口的样式。其中的参数windowstyle的设置及其说明如下表:

设置值常数说明
0vbHide窗口被隐藏,且焦点会移到隐藏式窗口
1vbNormalFocus窗口具有焦点,且会还原到它原来的大小和位置
2vbMinimizedFocus窗口会以一个具有焦点的图标来显示
3vbMaximizedFocus窗口是一个具有焦点的最大化窗口
4vbNormalNoFocus窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动
6vbMinimizedNoFocus窗口会以一个图标来显示,而当前活动的窗口仍然保持活动

 如果windowstyle省略,则程序是以具有焦点的最小化窗口来执行的。

Shell函数的功能是执行一个可执行文件,同时返回一个Variant(Double),如果调用成功的话,返回一个任务标识(Task ID),它是执行程序的唯一标识,若不成功,则会返回0。例如:

    x=Shell(c:/winword/winword.exe",3)

该语句调用“Word for Windows”,并把ID返回给x。注意,在具体输入程序时,ID不能省略。上面的语句不能写成:

    Shell(c:/winword/winword.exe",3)

必须在前面加上“x=”(可以用其它变量名)。

下面看具体的例子。

例1:见教材P343。

设计程序:    

在窗体的form_load()事件中添加如下代码:

Private Sub Form_load()

Dim str1 as string '定义一个字符串变量用于存储程序执行的情况

Form1.hide '隐藏窗体

str1=Shell("c:/windows/system32/calc.exe",1) '调用c:/windows/system32/calc.exe程序,将参数windowstyle设置为1,可让程序以正常大小的窗口完成并且拥有焦点

End Sub

程序说明:程序首先定义一个字符串变量,用于存储程序执行的情况,如果运行正常,就会返回所调用应用程序的ID,否则就会返回0;,然后通过Form1.hide来隐藏窗体;最后str1=Shell("c:/pwin95/calc.exe",1)来完成对win95的计算器应用程序的调用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值