注册 登录
编程论坛 VB6论坛

求助:创建文件夹的问题

lhf391855540 发布于 2009-11-06 12:45, 590 次点击
要把一个数据库文件备份到当前分区以外的另一个分区的指定文件夹,(假设当前程序在D盘,要把数据库文件备份到"F:\XXX数据备份文件"这个文件夹中),如果指定的路径没有这个文件夹就创建这个文件夹,然后备份到这个文件夹中,如果这个文件夹已经存在,就直接备份到这个文件夹中,代码应该怎样写?请高手指点。谢谢!

[ 本帖最后由 lhf391855540 于 2009-11-6 12:50 编辑 ]
3 回复
#2
msgj2009-11-06 22:02
如果你是备份 Access 数据库,可以用:
If Dir("F:\XXX数据备份文件\数据库.mdb") = "" Then
     If Dir("F:\XXX数据备份文件", vbDirectory) = "" Then
         MkDir "F:\XXX数据备份文件"
     End If
     FileCopy App.Path + "\数据库.mdb", "F:\XXX数据备份文件\数据库.mdb"
 End If

如果你是备份 SQL Server 数据库,就引用SQLDM和SQLNS吧,SQL Server 数据库是不能直接拷贝的。
#3
lhf3918555402009-11-06 22:18
谢谢msgj的热心帮助。已经找到了解决办法。基本上与你提供的方法相同。代码如下:

Private Sub cmd开始备份_Click()
    Me.MousePointer = 11    ''鼠标指针——沙漏,表示等待状态。
    Dim mydir As String
    mydir = "F:\MZTC2010数据备份文件"
    If Dir(mydir, vbDirectory) = "" Then
      If MsgBox("指定的路径不存在,是否要创建该文件夹,并将数据库文件备份到这个文件夹中?", vbYesNo + vbQuestion, "系统询问") = vbYes Then
       MkDir mydir    ' 建立新的目录或文件夹。
       FileCopy App.Path & "\MZTC2010.mdb", "F:\MZTC2010数据备份文件\MZTC2010数据备份.mdb"   '开始备份
      End If
    Else
      FileCopy App.Path & "\MZTC2010.mdb", "F:\MZTC2010数据备份文件\MZTC2010数据备份.mdb"   '目标文件夹已经存在,直接备份,
                                                                                            '用新的备份文件覆盖原有备份文件
    End If
   
    Me.MousePointer = 0     '鼠标指针——(缺省值)形状由对象决定。
    If MsgBox("操作完毕。" + Chr(13) + Chr(10) + "是否退出程序?" + Chr(13) + Chr(10) + "选择“是”退出;" + Chr(13) + Chr(10) + "选择“否”,程序继续运行。", vbYesNo + vbQuestion, "系统询问") = vbYes Then
       End
    Else
       Unload Me
    End If

End Sub

[ 本帖最后由 lhf391855540 于 2009-11-6 22:28 编辑 ]
#4
爱神的箭2012-10-21 16:18
mkdir()在文件夹已存在的情况下会出错
现在工程-引用-microsoft scriptingruntime。
Dim fso  As New FileSystemObject
 If Not fso.FolderExists("d:\11") Then
   fso.CreateFolder ("d:\11")
 End If
就不会出现报错的现象
1