用VB实现对库文件的分割备份 在设计管理程序时,数据库的软盘备份与恢复是我们经常遇到的一个问题。如果仅仅使用文件复制指令,那么在文件大小超过软盘容量时,就会出现错误。下面我来介绍一种用VB实现的对文件进行分割备份的方法。假设在E:“CLASS目录下有一个名为CLASSES.MDB的文件,3.8M,我们现在要按照每个1.4M,把它分割成3个文件进行备份,然后,再恢复成CLASSES1.MDB文件。启动VB,新建一个工程,添加一个模块,将下列代码填入模块的声明中: TypeFileSection BytesAsByte FileLenAsLong EndType TypeSectionedFile FilesAsFileSection NumberOfFilesAsLong EndType TypeFileInfo OrigProjSizeAsLong OrigFileNameAsString FileCountAsInteger FileStartNumAsLong EndType 然后,在Form1中添加两个按钮,分别命名为cmdBackup,Caption:"备份";cmdRestore,Caption:"恢复"。 分别双击按钮,填入以下代码: PrivateSubcmdBackup_Click DimSplitFileNameAsString‘待备份的文件名 DimSplitAsLong‘备份文件的大小 DimSaveNameAsString‘备份文件名 DimfNumAsInteger‘可用的文件号 DimNumFilAsLong‘备份文件的数目 DimFilesLenAsLong‘待备份文件的大小 DimCurrentFileAsSectionedFile‘参数结构
SplitFileName="e:“class“classes.mdb" Split=1400000 FilesLen=FileLen fNum=FreeFile OpenSplitFileNameForBinaryAsfNum‘计算备份参数 NumFil=CInt ReDimCurrentFile.Files Fori=1ToNumFil ReDimCurrentFile.Files.Bytes CurrentFile.Files.FileLen=UBound.Bytes) Next Fori=1ToNumFil Get#fNum,,CurrentFile.Files.Bytes Next DimFileInfoFileAsFileInfo‘相关数据写入临时文件 FileInfoFile.FileCount=NumFil FileInfoFile.OrigFileName=SplitFileName FileInfoFile.OrigProjSize=FileLen FileInfoFile.FileStartNum=BeginningNumber SaveName=SplitFileName".tpl" fNum=FreeFile OpenSaveNameForBinaryAs#fNum Put#fNum,,FileInfoFile Close#fNum EndSub
PrivateSubcmdRestore_Click DimOutNameAsString‘恢复后文件名 DimfNumAsInteger‘可用的文件号 DimtmpFileNameAsString‘临时文件名 DimFileAsSectionedFile‘参数结构 DimFileInfoAsFileInfo‘临时文件的结构 tmpFileName="e:“class“classes.mdb.tpl" OutName="e:“class“classes1.mdb" fNum=FreeFile OpentmpFileNameForBinaryAs#fNum‘取得相关数据 Get#fNum,,FileInfo Close#fNum ReDimFile.Files‘打开备份文件 Fori=1ToFileInfo.FileCount OpenName=FileInfo.OrigFileName"."Format,"00#") fNum=FreeFile OpenOpenNameForBinaryAs#fNum Get#fNum,1,File.Files Close#fNum Next fNum=FreeFile OpenOutNameForBinaryAs#fNum‘恢复 Fori=1ToFileInfo.FileCount Put#fNum,,File.Files.Bytes Next Close#fNum EndSub 运行该例程,“备份”按钮,用资源管理器看看E:“CLASS目录,可以看到分割后的三个文件:CLASSES.MDB.000、CLASSES.MDB.001、CLASSES.MDB.002,大小分别为:1.33M、1.33M、1.1M,还有一个存放参数的文件:CLASSES.MDB.TPL,大小:1K。“恢复”按钮,这些文件又被恢复成了CLASSES1.MDB。 以上程序在PWIN98、VB6环境下运行通过。需要的朋友可以加入拷贝到A盘等语句,这样,一个实用的备份与恢复程序就完成了。 (责任编辑:lengke) |