解压缩文件而不创建文件夹
Unzip a file without creating a folder
我正在尝试解压缩 .zip 文件。这一切都很好,但它总是创建一个与 .zip 文件同名的文件夹。
如何在不创建新文件夹的情况下获取文件?
Imports System.IO.Compression
Private Sub XYform_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
If (Not System.IO.Directory.Exists(System.IO.Path.GetTempPath & "\XML")) Then
System.IO.Directory.CreateDirectory(System.IO.Path.GetTempPath & "\XML")
End If
Catch
End Try
Try
ZipFile.ExtractToDirectory("D:\Test\Test data.zip", System.IO.Path.GetTempPath & "\XML")
Catch
'Allready Exists
End Try
End Sub
如果我这样做,它总是会在 "XML" 文件夹中创建一个 "Test Data" 文件夹。
如果您想操作文件,您需要单独使用 ZipArchiveEntries。
这是一个例子:
Dim zipPath As String = "c:\example\start.zip"
Dim extractPath As String = "c:\example\extract"
Using archive As ZipArchive = ZipFile.OpenRead(zipPath)
For Each entry As ZipArchiveEntry In archive.Entries
entry.ExtractToFile(Path.Combine(extractPath, entry.FullName))
Next
End Using
如果你只是想解压到不同的目录,你可以使用:
Dim zipPath As String = "c:\users\exampleuser\end.zip"
Dim extractPath As String = "c:\users\exampleuser\extract"
Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
archive.ExtractToDirectory(extractPath)
End Using
编辑:
如果您不想保留结构,试试这个:
Dim zipPath As String = "c:\example\start.zip"
Dim extractPath As String = "c:\example\extract"
Dim zipPath As String = "c:\example\start.zip"
Dim extractPath As String = "c:\example\extract"
Using archive As ZipArchive = ZipFile.OpenRead(zipPath)
For Each entry As ZipArchiveEntry In archive.Entries.Where(Function(a) Not String.IsNullOrEmpty(a.Name))
entry.ExtractToFile(entry.Name)
Next
End Using
我正在尝试解压缩 .zip 文件。这一切都很好,但它总是创建一个与 .zip 文件同名的文件夹。
如何在不创建新文件夹的情况下获取文件?
Imports System.IO.Compression
Private Sub XYform_Load(sender As Object, e As EventArgs) Handles Me.Load
Try
If (Not System.IO.Directory.Exists(System.IO.Path.GetTempPath & "\XML")) Then
System.IO.Directory.CreateDirectory(System.IO.Path.GetTempPath & "\XML")
End If
Catch
End Try
Try
ZipFile.ExtractToDirectory("D:\Test\Test data.zip", System.IO.Path.GetTempPath & "\XML")
Catch
'Allready Exists
End Try
End Sub
如果我这样做,它总是会在 "XML" 文件夹中创建一个 "Test Data" 文件夹。
如果您想操作文件,您需要单独使用 ZipArchiveEntries。
这是一个例子:
Dim zipPath As String = "c:\example\start.zip"
Dim extractPath As String = "c:\example\extract"
Using archive As ZipArchive = ZipFile.OpenRead(zipPath)
For Each entry As ZipArchiveEntry In archive.Entries
entry.ExtractToFile(Path.Combine(extractPath, entry.FullName))
Next
End Using
如果你只是想解压到不同的目录,你可以使用:
Dim zipPath As String = "c:\users\exampleuser\end.zip"
Dim extractPath As String = "c:\users\exampleuser\extract"
Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
archive.ExtractToDirectory(extractPath)
End Using
编辑:
如果您不想保留结构,试试这个:
Dim zipPath As String = "c:\example\start.zip"
Dim extractPath As String = "c:\example\extract"
Dim zipPath As String = "c:\example\start.zip"
Dim extractPath As String = "c:\example\extract"
Using archive As ZipArchive = ZipFile.OpenRead(zipPath)
For Each entry As ZipArchiveEntry In archive.Entries.Where(Function(a) Not String.IsNullOrEmpty(a.Name))
entry.ExtractToFile(entry.Name)
Next
End Using