程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 如何備份(恢復)存儲路徑含有空格的壓縮文件

如何備份(恢復)存儲路徑含有空格的壓縮文件

編輯:VB綜合教程

摘要:通過該方法的應用,可以把數據庫及有關文件壓縮到含有空格的文件夾中,並且解決了由於Windows的並行性處理而引發的一系列問題。關鍵字:Winrar路徑空格
  Winrar是目前比較流行的高壓縮率的壓縮軟件,有關它的使用報道文章也比較多,但他們都沒能解決如‘壓縮文件的路徑名含有空格'的等難題。本人在開發《軍械管理系統》課題期間,因為前台是VisualBasic、後台采用的是Access數據庫,要求把數據庫隨時備份到硬盤的‘c:ProgramFiles'文件夾下,這樣用通常的辦法就不能進行恢復。經過分析,已經研究出解決的辦法,下面作一介紹,以便同行借鑒。

1.解決空格的問題
  

在上面的表單中,如果按所選擇的路徑進行備份操作,將出現找不到文件的錯誤信息。解決方法是必須在未壓縮之前用MkDir在硬盤的根目錄中建立一個臨時的文件夾,把要操作的數據庫用FileCopy函數拷貝到臨時的文件夾中,在這裡進行文件的壓縮工作,之後再拷貝到"c:ProgramFiles"的文件夾中,具體程序如下:
  1.1備份操作
  tdir="c: emppath"'臨時路徑名
  MkDir(tdir)'創建臨時路徑
  FileCopyApp.Path&"jxgl.mdb",tdir&"jxgl.mdb"'把文件從默認路徑中拷到所創建的臨時文件夾裡
  Rarexe=App.Path&"winrar.exe"
  src=tdir&"jxgl.mdb"
  des=tdir&"jxgl.rar"
  FileString=Rarexe&"a-ep"&des&""&src
  Result=Shell(FileString,vbHide)'在臨時的文件夾中完成壓縮的任務
  IfErr.Number<>0Then
  MsgBox"無法壓縮數據庫:"&Err.Description,vbCritical
  ExitSub
  FileCopytdir&"jxgl.rar","c:ProgramFilesjxgl.rar"'從臨時文件夾中再拷到所填寫的"c:ProgramFiles"裡
  1.2恢復操作
  tdir="c: emppath"'臨時路徑名
  MkDir(tdir)'創建臨時路徑
  FileCopy"c:ProgramFilesjxgl.rar",tdir&"jxgl.rar"'從"c:ProgramFiles"中把要恢復的壓縮文件拷貝到臨時文件夾中

Rarexe=App.Path&"winrar.exe"
  des=tdir
  src=tdir&"jxgl.rar"
  FileString=Rarexe&"x-ep"&src&""&"jxgl.mdb"&""&des
  Result=Shell(FileString,vbHide)'在臨時的文件夾中完成解包的任務
  IfErr.Number<>0Then
  MsgBox"無法解開數據庫:"&Err.Description,vbCritical
  ExitSub
  FileCopytdir&"jxgl.mdb","c:ProgramFilesmdb.rar"'從臨時文件夾中再拷到所填寫的"c:ProgramFiles"裡

2.解決數據庫恢復出錯的問題
  Windows操作系統的一大特點就是進程的並行性,也就是在前一個任務未執行完之前,下一個任務已經開始執行,這有益於提高計算機的執行速度,但也存在著隱患。我們在數據庫恢復時就遇到了此類問題。
  例如:Winrarxa:jxgl.rarjxgl.mdbc:jxgl
  FileCopy"c:jxgljxgl.mdb","c:ProgramFilesjxgl.mdb"
  上面這兩條命令行在PII/766計算機上執行沒有任何問題,但在C/366計算機上執行就出現了找不到"c:jxgljxgl.mdb"的錯誤,經過大家的仔細分析,問題出在"進程的並行性"上。為了保障第二條命令的正常進行,必須使第一條命令執行完,由此我們通過增加預留時間解決了該問題,方法如下:
  Winrarxa:jxgl.rarjxgl.mdbc:jxgl
  tt=Timer'取得機器的當前時間
  DoWhilett>Timer-0.5'延遲0.5秒
  Loop
  FileCopy"c:jxgljxgl.mdb","c:ProgramFilesjxgl.mdb"
  3.結束語
  以上兩種問題的解決辦法未曾見到有關的報道,希望本文能對同行在軟件設計時,在數據庫的壓縮過程中有所幫助。
  參考文獻:
  謝東主編.VisualBasic開發多媒體應用程序.北京:清華大學出版社
  
  作者姓名:李偉春
  職稱:高級工程師
  工作單位:公安海警高等專科學校計算機教研室
  通信地址:浙江省寧波市北侖區公安海警高等專科學校計算機教研室
  郵政編碼:315801
  
  作者姓名:金梅
  職稱:主治醫師
  工作單位:寧波市第六人民醫院內科
  通信地址:浙江省寧波市第六人民醫院內科
  郵政編碼:315040

->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved