我有一个逻辑问题,只需要更多的工作就可以了。DotNetZip循环逻辑的逻辑帮助
For Each JobNode In JobNodes
Dim Source = JobNode.SelectNodes("Source")
For Each item As System.Xml.XmlNode In Source
Dim infoReader As System.IO.FileInfo
''''Discerns whether a file or directory
If item.InnerText.Contains(".") Then 'is a file
If Dir$(item.InnerText) <> vbNullString Then
mySize += FileLen(item.InnerText)
End If
zip.AddFile(item.InnerText, "")
Dim numFiles2 = filenames.Count
mySize = BytesTO(mySize, convTo.MB)
Console.WriteLine("...Added all " & numFiles2 & " files. Total loose file collection size is " & Math.Round(mySize, 2) & " MB")
Console.WriteLine(vbCrLf)
Else 'is a directory
zip.AddDirectory(item.InnerText, GetLastDirName(item.InnerText & " "))
Dim dinfo As New DirectoryInfo(item.InnerText)
Dim sizeOfDir As Long = DirectorySize(dinfo, True)
Dim numFiles As Integer = CountFiles_FolderAndSubFolders(item.InnerText)
Console.WriteLine("...Added all " & numFiles & " files. Total directory size is {0:N2} MB", (CDbl(sizeOfDir))/(1024 * 1024))
Console.WriteLine(vbCrLf)
End If
Next
这是我制作的备份程序的一部分。这是确定要添加到zip的对象是文件(IF语句的第一部分)还是目录(IF语句的ELSE部分)的部分。
我的问题是,我试图添加以下代码:
Dim numFiles2 = filenames.Count
mySize = BytesTO(mySize, convTo.MB)
Console.WriteLine("...Added all " & numFiles2 & " files. Total loose file collection size is " & Math.Round(mySize, 2) & " MB")
Console.WriteLine(vbCrLf)
就在zip.AddFile(item.innertext,"")
部分之后。我想添加这个,这样我就可以从控制台打印出这些信息。
问题是,如果我只是把它放在zip.addfile()
之后,它会直接在每次上面输出代码。我只希望它打印出来的那部分(正上方),一旦完成将所有松散的文件(或文件添加使用zip.AddFile()
)
编辑:添加在顶环更多的澄清
有一件事可能会改变这是我使用For语句的事实。检查上面的编辑 – MaylorTaylor 2013-03-22 19:06:36
其实这正是我以为你可能会这样做。在内部循环之后,您可以将我的答案的“循环迭代”部分添加到外部循环的主体中。 – 2013-03-22 19:09:00
完成了。谢谢先生。我从来不需要做那样的事情,但它总是有意义的。 – MaylorTaylor 2013-03-22 19:16:18