Foxtable(狐表)用户栏目专家坐堂 → [求助]设计一段备份的代码


  共有1898人关注过本帖树形打印复制链接

主题:[求助]设计一段备份的代码

帅哥哟,离线,有人找我吗?
Jacksnfeng
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:72 积分:753 威望:0 精华:0 注册:2013/4/6 22:31:00
[求助]设计一段备份的代码  发帖心情 Post By:2017/5/25 16:35:00 [只看该作者]

我要设计一个备份功能,所以我用了内部函数backup,代码如下:

If filesys.directoryexists(args0) = False OrElse filesys.directoryexists(args1) = False Then Return Nothing

For Each fns As String In filesys.GetFiles(args0) 'fileNameSource

    Dim fnt As String = args1 & "\" & filesys.GetName(fns) 'fileNameTarget

    If filesys.FileExists(fnt) = False Then

        output.show("step1")

        filesys.copyfile(fns,fnt)

    Else '比较修改时间

        Dim fis As new fileinfo(fns) 'fileinfoSource

        Dim fist As Date = fis.lastwritetime 'fileinfoSourceTime

        Dim fit As new fileinfo(fnt) 'fileinfoTarget

        Dim fitt As Date = fit.lastwritetime 'fileinfoTargetTime

        If fitt < fist Then

            filesys.copyfile(fns,fnt,True)

        End If

    End If

Next

'子文件夹

For Each fns As String In filesys.GetDirectories(args0) 'fileNameSource

dim fnt as string = agrs(1) & fnt.replace(args(0),"")

Functions.Execute(fns,fnt) '递归调用本身 

next

Return Nothing

需要时就调用 Functions.Execute("backup","p:\desktop\Foxtable项目\备份资料\source","p:\desktop\Foxtable项目\备份资料\target")

可是总是出错,求高手完善一下。

另,曾尝试FileSys.CopyDirectory完成此功能,但它没有判断新旧文件编辑时间的功能。源文件夹已删除而目标文件夹还有的文件夹怎样删除?这个功能也没有。

 




 回到顶部
帅哥哟,离线,有人找我吗?
Jacksnfeng
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:72 积分:753 威望:0 精华:0 注册:2013/4/6 22:31:00
  发帖心情 Post By:2017/5/25 16:45:00 [只看该作者]

以下代码的问题是第三个参数选false就会出错,如果选true就没事,不知何解:
filesys.copydirectory("p:\desktop\Foxtable项目\备份资料\source","p:\desktop\Foxtable项目\备份资料\target",False)

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/25 17:54:00 [只看该作者]

If filesys.directoryexists(args(0)) = False OrElse filesys.directoryexists(args(1)) = False Then Return Nothing
For Each fns As String In filesys.GetFiles(args(0)) 'fileNameSource
   
    Dim fnt As String = args(1) & "\" & filesys.GetName(fns) 'fileNameTarget
   
    If filesys.FileExists(fnt) = False Then
       
        output.show("step1")
       
        filesys.copyfile(fns,fnt)
       
    Else '比较修改时间
       
        Dim fis As new fileinfo(fns) 'fileinfoSource
       
        Dim fist As Date = fis.lastwritetime 'fileinfoSourceTime
       
        Dim fit As new fileinfo(fnt) 'fileinfoTarget
       
        Dim fitt As Date = fit.lastwritetime 'fileinfoTargetTime
       
        If fitt < fist Then
           
            filesys.copyfile(fns,fnt,True)
           
        End If
       
    End If
   
Next

'子文件夹
For Each fns As String In filesys.GetDirectories(args(0)) 'fileNameSource
   
    Dim fnt As String = args(1) & fns.replace(args(0),"")
    If FileSys.DirectoryExists(fnt) = False Then
        FileSys.CreateDirectory(fnt)
    End If
    Functions.Execute("backup", fns,fnt) '递归调用本身
   
Next


Return Nothing


 回到顶部