Backup.frm
上传用户:dohkov
上传日期:2007-06-18
资源大小:35k
文件大小:5k
源码类别:

家庭/个人应用

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
  3. Begin VB.Form Backup 
  4.    BorderStyle     =   1  'Fixed Single
  5.    Caption         =   "选择磁盘供备份"
  6.    ClientHeight    =   3045
  7.    ClientLeft      =   45
  8.    ClientTop       =   330
  9.    ClientWidth     =   3735
  10.    ControlBox      =   0   'False
  11.    LinkTopic       =   "Form1"
  12.    MaxButton       =   0   'False
  13.    MinButton       =   0   'False
  14.    ScaleHeight     =   3045
  15.    ScaleWidth      =   3735
  16.    StartUpPosition =   3  'Windows Default
  17.    Begin MSComctlLib.ProgressBar ProgressBar1 
  18.       Height          =   315
  19.       Left            =   120
  20.       TabIndex        =   5
  21.       Top             =   2640
  22.       Visible         =   0   'False
  23.       Width           =   3465
  24.       _ExtentX        =   6112
  25.       _ExtentY        =   556
  26.       _Version        =   393216
  27.       Appearance      =   0
  28.    End
  29.    Begin VB.DriveListBox Drive1 
  30.       Height          =   300
  31.       Left            =   120
  32.       TabIndex        =   4
  33.       Top             =   2640
  34.       Width           =   2295
  35.    End
  36.    Begin VB.CommandButton Command2 
  37.       Cancel          =   -1  'True
  38.       Caption         =   "取消"
  39.       Height          =   375
  40.       Left            =   2640
  41.       TabIndex        =   2
  42.       Top             =   840
  43.       Width           =   975
  44.    End
  45.    Begin VB.CommandButton Command1 
  46.       Caption         =   "确定"
  47.       Default         =   -1  'True
  48.       Height          =   375
  49.       Left            =   2640
  50.       TabIndex        =   1
  51.       Top             =   360
  52.       Width           =   975
  53.    End
  54.    Begin VB.DirListBox Dir1 
  55.       Height          =   2190
  56.       Left            =   120
  57.       TabIndex        =   0
  58.       Top             =   360
  59.       Width           =   2295
  60.    End
  61.    Begin VB.Label Label1 
  62.       AutoSize        =   -1  'True
  63.       Caption         =   "选择"
  64.       Height          =   180
  65.       Left            =   120
  66.       TabIndex        =   3
  67.       Top             =   120
  68.       Width           =   360
  69.    End
  70. End
  71. Attribute VB_Name = "Backup"
  72. Attribute VB_GlobalNameSpace = False
  73. Attribute VB_Creatable = False
  74. Attribute VB_PredeclaredId = True
  75. Attribute VB_Exposed = False
  76. Private Sub Command1_Click()
  77. Dim Directory As String
  78. Dim lSec As Long, lSecSpace As Long, lLastJ As Long, lct As Long, lTotalJ As Long
  79. On Error GoTo Errorhandle
  80. Directory = Trim(Dir1.Path)
  81. If vbNo = MsgBox("备份选定文件到 " + Directory + Chr(13) + Chr(13) + "忠告:不推荐直接将文件备份至软盘!" + Chr(13) + "最好将文件备份至硬盘,然后用ZIP压缩!" + Chr(13) + Chr(13) + "是否要备份?", vbYesNo + vbExclamation) Then
  82.    Exit Sub
  83. End If
  84. Me.MousePointer = 11
  85. Me.Caption = "正在备份中......"
  86. If Right(Directory, 1) <> "" Then
  87.    Directory = Directory + ""
  88. End If
  89. sdrive = Left(Directory, 3)
  90. Me.ProgressBar1.Max = UBound(BackupFileArray)
  91. Me.ProgressBar1.Visible = True
  92. For i = 1 To UBound(BackupFileArray)
  93. Repdisk:
  94.     lct = GetDiskFreeSpace(sdrive, lSec, lSecSpace, lLastJ, lTotalJ)
  95.     If lct = 0 Then
  96.        GoTo Errorhandle
  97.     Else
  98.       lct = lSec * lSecSpace * lLastJ
  99.     End If
  100.     If lct < FileLen(BackupFileArray(i)) Then
  101.        If vbYes = MsgBox("磁盘已满,请更换新盘!" + Chr(13) + Chr(13) + "继续备份吗? 按<否>可中断!", vbYesNo + vbQuestion) Then
  102.           GoTo Repdisk
  103.        Else
  104.           Me.Caption = "选择磁盘供备份"
  105.           Me.ProgressBar1.Visible = False
  106.           Me.MousePointer = 0
  107.           Exit Sub
  108.        End If
  109.     End If
  110.     FileCopy BackupFileArray(i), Directory + BackupFileArray(i)
  111.     If Right(BackupFileArray(i), 3) = "cdo" Then
  112.        FileCopy BackupFileArray(i), Directory + BackupFileArray(i)
  113.        mxfile = Left(BackupFileArray(i), Len(BackupFileArray(i)) - 3) + "mx"
  114.        If Dir(mxfile) <> "" Then
  115.           FileCopy mxfile, Directory + mxfile
  116.        End If
  117.     End If
  118.      Me.ProgressBar1.Value = i
  119. Next
  120. Me.ProgressBar1.Visible = False
  121. Me.Dir1.Visible = True
  122. Me.MousePointer = 0
  123. MsgBox "恭喜,备份完成啦!", vbInformation
  124. Unload Me
  125. Errorhandle:
  126. If Err.Number = 75 Then
  127.    Me.Caption = "选择磁盘供备份"
  128.    Me.ProgressBar1.Visible = False
  129.    Me.MousePointer = 0
  130.    MsgBox "不能存储文件,请检查你有否在此磁盘上有存储文件的权力!", vbCritical
  131. End If
  132. If Err.Number = 70 Then
  133.    Me.Caption = "选择磁盘供备份"
  134.    Me.ProgressBar1.Visible = False
  135.    Me.MousePointer = 0
  136.    MsgBox "磁盘被写保护,或不允许写入", vbCritical
  137. End If
  138. End Sub
  139. Private Sub Command2_Click()
  140. Unload Me
  141. End Sub
  142. Private Sub Dir1_Change()
  143. Label1.Caption = Dir1.Path
  144. End Sub
  145. Private Sub Drive1_Change()
  146. On Error GoTo Errorhandle
  147. Dir1.Path = Drive1.Drive
  148. Exit Sub
  149. Errorhandle:
  150. Select Case Err.Number
  151.        Case 52
  152.             MsgBox "指定的磁盘驱动器不可用!" + Chr(13) + Chr(13) + "可能不存在此驱动器或驱动器内无磁盘!", vbCritical
  153.        Case 57
  154.             MsgBox "磁盘I/0错误,操作被终止!", vbCritical
  155.        Case 61
  156.             MsgBox "磁盘满,空间不够!", vbCritical
  157.        Case 68
  158.             MsgBox "磁盘没有放入驱动器中!请检查一下吧!", vbCritical
  159.        Case 70
  160.             MsgBox "磁盘被写保护 或 文件被保护!", vbCritical
  161.        Case 71
  162.             MsgBox "磁盘没准备好!", vbCritical
  163. End Select
  164. End Sub
  165. Private Sub Form_Load()
  166. CencerForm Me
  167. Label1.Caption = Dir1.Path
  168. End Sub