一个备份程序问题
每隔固定一段时间就将某个文件复制到d:\test目录 备份文件名字与备份时的时间对应,只保留6个备份,下面是代码
Dim dir As New System.IO.DirectoryInfo( "d:\test ")
Dim fil As System.IO.FileInfo() = dir.GetFiles()
If fil.Length > = 6 Then '保留6个备份文件
Static c As Integer = fil.Length
For g As Integer = 1 To (c - 6 + 1)
Dim i As System.IO.FileInfo
Dim k As Long = Long.MaxValue '备份文件的名称跟备份时的时间对应,如200710121521
For Each i In fil
If CLng(i.Name) < k Then
k = CLng(i.Name)
End If
Next
System.IO.File.Delete( "d:\test " & "\ " & k)
Next
End If
如果备份目录里的文件数目小于6是没有问题的,备份超过6就会自动删除。如果备份时候就超过了6比如8,删除的时候只能删除一个,我设置的循环没用。
原来如果有8个文件的话,删除一个后,fil变量还是认为目录里有8个文件,因此for next循环在每次循环的时候删除的都是同一个文件名的文件。
我知道原因,但是不知道该怎么解决。谁帮忙看看啊,最好给出详细点的代码。
[解决办法]