主题:求一文件备份管理程序
mtv133
[专家分:0] 发布于 2008-08-13 18:32:00
为了保存资料,在电脑中都设有专门的目录(设为A目录),但很多时候又需要用U盘作中转和备份保存(设为B目录).时间一长,在A、B中都会出现新增、删除文件或子文件夹、修改文件,即有的文件A中有,而B中没有,A中有的已更新,而B中的同一文件却未更新,A中有的删除而B中的同一文件又未删除;反之,对B也一样。为了使A、B两个目录的内容为最全的,也是最新的,就需要一个软件对其进行管理,在网上找了一下,还未找到这样功能的文件备份管理软件,特来此请求各位大侠帮助。对于软件的功能,我先作一个分析:设A为源目录,B为保存目录
1、要有删除确认功能:由于A、B中独有的文件,既可以是新增的,也可能是原都有,但其中一个已删除。我们需要保存新增的。于是在程序执行前,需要将A、B中各自独有的文件列出(列明路径),通过手工选择确认哪些是属于应删除的(缺省为不删除)。这样只将A中未经确认的复制到B中,同时删除B中已经确认为删除的内容。
2、A、B中都有的内容(同路径下的同名文件),在B中保存最新修改的。若B中的新,则保持B中的不变;若A中的新,则用A中的覆盖B中的。
3、通过设置,可以在以上操作后,将B中的内容完全复制回A中。
回复列表 (共3个回复)
沙发
老大徒伤悲 [专家分:29120] 发布于 2008-08-14 09:10:00
程序你自己写。
主要的一个函数,我告诉你:
VB文件属性代码
vbNormal 0 正常的(Dir 和 SetAttr 的缺省值)
vbReadOnly 1 只读的
vbHidden 2 隐藏的
vbSystem 4 系统文件
vbVolume 8 卷标
vbDirectory 16 目录或文件夹
vbArchive 32 文件自上一次备份后已经改变
以上这些数值可以 "综合" 相加运用,当一个文件只读且又是保存属性,则属性代码为 1 + 32 = 33
隐藏文件夹的属性代号 2 + 16 = 18。
使用 GetAttr (得知文件的属性)
Private Sub Command1_Click()
Print GetAttr("C:\Autoexec.Bat")
If GetAttr("C:\Autoexec.Bat") And 1 Then Print "此文件只读"
If GetAttr("C:\Autoexec.Bat") And 2 Then Print "此文件隐藏"
If GetAttr("C:\Autoexec.Bat") And 4 Then Print "此文件为系统文件"
If GetAttr("C:\Autoexec.Bat") And 16 Then Print "此文件为文件夹"
If GetAttr("C:\Autoexec.Bat") And 32 Then Print "此文件为保存属性"
End Sub
使用 SetAttr (设定文件的属性)
Private Sub Command1_Click()
SetAttr "C:\Autoexec.Bat", 1 + 2 + 32
Print "C:\Autoexec.Bat 此文件被设定成 只读 & 隐藏 & 保存属性"
End Sub
板凳
mtv133 [专家分:0] 发布于 2008-08-14 11:35:00
我不会编呵.我估计这个程序不是很复杂,才到这里求各位大侠牛刀小试一把,现在U盘的应用很普遍了,U盘不仅仅作为一个移动存储器使用,更多是还在作为一个保存资料的备份工具.我想这个程序出来后,应用会很广的.
有一个"企业文件同步备份系统"基本可以完成这点,但这个系统一个很关键的麻烦是必须事先设定任务,它并不适用我所说这种较长时间做一次资料整理的需求.
3 楼
mtv133 [专家分:0] 发布于 2008-08-18 16:57:00
希望能有大侠帮助一下呵
我来回复