我想做一个备份功能,用commandialog选择目标文件夹和文件名,将固定处的.MDB文件备份至指定处,不知怎么实现,也就是VB如何操作文件这一块,还有commondialog如何设置.

解决方案 »

  1.   


    Public Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
    Public Type SHFILEOPSTRUCThwnd As LongwFunc As LongpFrom As StringpTo As StringfFlags As IntegerfAnyOperationsAborted As LonghNameMappings As LonglpszProgressTitle As String '只有在 FOF_SIMPLEPROGRESS 时用End Type'wFunc 常数'FO_COPY 把 pFrom 文件拷贝到 pTo。Public Const FO_COPY = &H2'FO_DELETE 删除 pFrom 中的文件(pTo 忽略)。Public Const FO_DELETE = &H3'FO_MOVE 把 pFrom 文件移动到 pTo。Public Const FO_MOVE = &H1
    'fFlag 常数'FOF_ALLOWUNDO 允许 Undo 。Public Const FOF_ALLOWUNDO = &H40'FOF_NOCONFIRMATION 不显示系统确认对话框。Public Const FOF_NOCONFIRMATION = &H10'FOF_NOCONFIRMMKDIR 不提示是否新建目录。Public Const FOF_NOCONFIRMMKDIR = &H200'FOF_SILENT 不显示进度对话框Public Const FOF_SILENT = &H4
    ‘’‘ 实现部分
       Dim nowtime As String, dd As String, riqi As String
       nowtime = Format(Now, "hh-mm-ss")
       dd = str(Date)
       riqi = dd + "-" + nowtime
       strTemp = riqi
       CommonDialog1.CancelError = True
       On Error GoTo ErrHandler
       ' 设置标志
       CommonDialog1.Flags = cdlOFNHideReadOnly
       ' 设置过滤器
       CommonDialog1.Filter = "All Files (*.*)|*.*"
       ' 指定缺省的过滤器
       CommonDialog1.FilterIndex = 2
       ' 显示“打开”对话框
       '
       CommonDialog1.FileName = "data" & riqi
       CommonDialog1.ShowSave
       ' 显示选定文件的名字
       riqi = CommonDialog1.FileName
       ' 拷贝
       Dim SHFileOp As SHFILEOPSTRUCT
       SHFileOp.wFunc = FO_COPY
       SHFileOp.pFrom = “你的固定处的.MDB文件的路径”
       SHFileOp.pTo = riqi
       SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMMKDIR
       Call SHFileOperation(SHFileOp)
    ErrHandler:
       ' 用户按了“取消”按钮
       Exit Sub