그래서 도움이 필요한 두 가지 기능이 있습니다.DotNetZip을 사용하여 zip 파일 검사
Public Function checkZipForFiles(ByVal zipFilepath As String)
Try
Dim doc As New System.Xml.XmlDocument
If My.Computer.FileSystem.FileExists("Backup.xml") Then
doc.Load("Backup.xml")
Dim JobNodes As XmlNodeList = doc.GetElementsByTagName("Job")
For Each JobNode In JobNodes
Dim Source = JobNode.SelectNodes("Source")
For Each item As System.Xml.XmlNode In Source
For Each File In checkFilesInFolder(item.InnerText)
Using zip = ZipFile.Read(zipFilepath)
Dim fileName As String
fileName = checkFilesInFolder(item.InnerText)
Dim e As ZipEntry = zip(fileName)
If e Is Nothing Then
Console.WriteLine("File: " & fileName & " does not exist in zip.")
End If
End Using
Next
Next
Next
End If
Catch ex As Exception
Console.Error.WriteLine(ex.Message)
myLogger.Log(ex.Message)
End Try
End Function
이 파일은 xml 파일을 읽습니다. xml 파일에는 "Destination", "File Source"및 "Job name"과 같은 압축 프로세스에 대한 정보가 저장됩니다. 이 함수는 모든 파일이 zip에 있는지 확인하기 위해 zip을 확인합니다. 이 함수가 "checkFilesiInFolder"함수를 사용하여 zip에서 검색 할 파일 이름을 얻는 것이 필요하다는 것을 알 수 있습니다.
문제 - "checkFilesInFolder"기능에서 마지막으로 스캔 한 파일 만 반환됩니다.
Public Function checkFilesInFolder(ByVal folderPath As String)
Try
' make a reference to a directory
Dim di As New IO.DirectoryInfo(folderPath)
Dim diar1 As IO.FileInfo() = di.GetFiles()
Dim file As IO.FileInfo
Console.WriteLine("The following files are located in " & folderPath)
'list the names of all files in the specified directory
For Each file In diar1
Console.WriteLine(file.FullName)
'myLogger.Log(file.ToString)
Next
Return file.ToString
Catch ex As Exception
Console.Error.WriteLine(ex.Message)
myLogger.Log(ex.Message)
End Try
End Function