公司财务服务器使用的是用友U8,使用的是U8+12.0安装包
数据备份的路径如下: Ufbak\账套名\日期\备份文件,如果你们的用友也是这样的备份路径,那么就适用于这个工具
一、工具的作用
- 帮助你删除以前多余的备份文件,减少备份到其他设备上的体积大小,比手工删除快多了,财务数据一般服务器上备一份,移动硬盘备一份,不联网的存储设备上备份一份
- 删除的文件会转移至回收站,发现删除错了,可以从回收站恢复的,基本上无风险
- 不用担心目录太深了,虽然使用了递归查找目录,但限制递归层级为2,也就是你选中Ufbak目录,那它就只能找到【Ufbak\账套名\日期】,不会更深了
二、使用方法
- 打开软件,选择Ufbak目录,这时会列出这个目录下所有账套下的所有日期的备份文件夹。
- 点击自动选择,它会从现有的目录列表中按创建日期为准,找到创建日期最大的那个日期,并以此为基础,减去两天,以防止有些服务器跨天进行数据备份。然后会从第一条记录开始进行日期对比,比它小的就选中。
- 点击删除,会把选中的文件删除到回收站中。
三、说明
删除文件有风险,特别是在财务服务器上进行操作,一定要慎重一些,虽然是先删除到回收站当中去了
所以可以先把备份文件复制到其他电脑上先试试,或者换个文件夹先试试效果
最后会把软件源码打包至附件中,大家可以按需要更改。
四、截图
五、源码
[Visual Basic .NET] 纯文本查看 复制代码
Imports System.IO
Imports System.IO.FileSystemInfo
Imports Microsoft.VisualBasic.FileIO
Public Class Form1
Private Sub btn_xz_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_xz.Click
Dim path As String = ""
Dim dr As DialogResult = FB1.ShowDialog
If dr = DialogResult.OK Then
path = FB1.SelectedPath
Else
Exit Sub
End If
txt_path.Text = path
'获取目录下的所有文件夹
L1.Items.Clear()
GetPath(path, 2)
End Sub
Public Sub GetPath(ByVal path As String, ByVal maxlevel As Int16)
Dim root As DirectoryInfo = New DirectoryInfo(path)
If maxlevel > 0 Then
For Each d In root.GetDirectories
If maxlevel = 1 Then
Dim item As ListViewItem = New ListViewItem
item.Text = d.FullName
item.SubItems.Add(d.CreationTime)
L1.Items.Add(item)
End If
GetPath(d.FullName, maxlevel - 1)
Next
End If
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
L1.View = System.Windows.Forms.View.Details
End Sub
Private Sub btn_del_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_del.Click
'删除选中的文件夹
Dim dr = MessageBox.Show("确信要删除选定的文件夹吗,删除后将无法恢复,请一定要认真核对后再删除!!!", "删除提醒", MessageBoxButtons.OKCancel, MessageBoxIcon.Information)
If dr = DialogResult.Cancel Then
Exit Sub
End If
If L1.Items.Count < 1 Then
Exit Sub
End If
Dim path As String = ""
For i = 0 To L1.Items.Count - 1
If L1.Items(i).Checked Then
path = L1.Items(i).Text
'Directory.Delete(path, True)
'删除到回收站里
FileSystem.DeleteDirectory(path, UIOption.OnlyErrorDialogs, RecycleOption.SendToRecycleBin)
End If
Next
MessageBox.Show("所选中的文件夹已经成功删除", "删除提醒", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub
Private Sub btn_all_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_all.Click
'在列表中进行选择,先挑选出最大的日期,并减去两天
Dim rq1 As Date
Dim rq2 As Date
Dim sj As String
If L1.Items.Count < 1 Then
Exit Sub
End If
rq1 = CDate(L1.Items(0).SubItems(1).Text)
For i = 0 To L1.Items.Count - 1
sj = L1.Items(i).SubItems(1).Text
rq2 = CDate(sj)
If rq1 < rq2 Then
rq1 = rq2
End If
Next
rq1 = rq1.AddDays(-2)
'选中比最大日期小的选项
For i = 0 To L1.Items.Count - 1
sj = L1.Items(i).SubItems(1).Text
rq2 = CDate(sj)
If rq2 < rq1 Then
L1.Items(i).Checked = True
End If
Next
End Sub
End Class