用VB实现对库文件的分割备份

来源: 作者: 发布时间:2007-12-29  
在设计信息管理程序时,数据库的软盘备份与恢复是我们经常遇到的一个问题。如果仅仅使用文件复制指令,那么在文件大小超过软盘容量时,就会出现错误。下面我来介绍一种用VB实现的对文件进行分割备份的方法。假设在E:\CLASS目录下有一个名为CLASSES.MDB的文件,3.8M,我们现在要按照每个1.4M,把它分割成3个文件进行备份,然后,再恢复成CLASSES1.MDB文件。启动VB,新建一个工程,添加一个模块,将下列代码填入模块的声明中:

 

Type FileSection

    Bytes() As Byte

    FileLen As Long

End Type

Type SectionedFile

    Files() As FileSection

    NumberOfFiles As Long

End Type

Type FileInfo

    OrigProjSize As Long

    OrigFileName As String

    FileCount As Integer

    FileStartNum As Long

End Type

 

    然后,在Form1中添加两个按钮,分别命名为cmdBackup,Caption:"备份";cmdRestore,Caption:"恢复"。

    分别双击按钮,填入以下代码:

 

Private Sub cmdBackup_Click()

    Dim SplitFileName As String '待备份的文件名

    Dim Split As Long '备份文件的大小

    Dim SaveName As String '备份文件名

    Dim fNum As Integer '可用的文件号

    Dim NumFil As Long '备份文件的数目

    Dim FilesLen As Long '待备份文件的大小

    Dim CurrentFile As SectionedFile '参数结构

   

   

    SplitFileName = "e:\class\classes.mdb"

    Split = 1400000

    FilesLen = FileLen(SplitFileName)

   

    fNum = FreeFile

    Open SplitFileName For Binary As fNum '计算备份参数

        NumFil = CInt(FilesLen / Split)

        ReDim CurrentFile.Files(1 To NumFil)

        For i = 1 To NumFil

            ReDim CurrentFile.Files(i).Bytes(1 To Split)

            CurrentFile.Files(i).FileLen = UBound(CurrentFile.Files(i).Bytes)

        Next

        For i = 1 To NumFil

            Get #fNum, , CurrentFile.Files(i).Bytes

        Next

        ReDim CurrentFile.Files(NumFil).Bytes(1 To FilesLen - ((NumFil - 1) * Split))

        CurrentFile.NumberOfFiles = NumFil

        Get #fNum, , CurrentFile.Files(NumFil).Bytes

        CurrentFile.Files(NumFil).FileLen = UBound(CurrentFile.Files(NumFil).Bytes)


(阅读次数:
共2页: 上一页 1 [2] 下一页

上一篇:开发基于SQL SERVER 的C/S数据库应用系统   下一篇:用Visual Basic 5.0开发无线通讯数据采集应用程序

[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。