論理的な問題があります。これに取り組む頭脳がもっと必要です。
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ループを追加