公開日:2015/08/08
VB.NETでZIPファイルを作成する方法をメモする。
ZIPファイル作成関数
関数をつくってみた。
Private Function zip(ByVal sourceDirPath As String,
ByVal sourceFileName As String,
ByVal ProjectName As String) As String
Dim sourceFilePath As String = Path.Combine(sourceDirPath, sourceFileName)
Dim projectDirPath As String = Path.Combine(Path.GetTempPath, ProjectName)
Dim tempDirPath As String = Path.Combine(projectDirPath, "Temp")
Dim tempFilePath As String = Path.Combine(tempDirPath, sourceFileName)
Dim zipFilePath As String = Path.Combine(projectDirPath, "temp.zip")
Directory.CreateDirectory(projectDirPath)
Directory.CreateDirectory(tempDirPath)
File.Copy(sourceFilePath, tempFilePath)
File.Delete(zipFilePath)
ZipFile.CreateFromDirectory(tempDirPath, zipFilePath)
File.Delete(tempFilePath)
Return zipFilePath
End Function
パラメータは3つ。
ZIP圧縮したいファイルのフォルダパスとファイル名と任意のプロジェクト名。
Path.GetTempPathで一時フォルダを取得、その下にプロジェクト名のフォルダを作成。
さらにその下にTempフォルダを作成して圧縮したいファイルをコピー。
前回圧縮したZIPファイルが残っているかもしれないのでFile.Deleteで削除。
ZipFile.CreateFromDirectoryでTempフォルダの内容を圧縮してtemp.zipを作成。
コピーしたファイルは不要なので削除。
temp.zipのパスを返す。
ファイルを指定して圧縮できたらもっと簡単にできるのにフォルダ指定だからこんなんなっちまった。
まあいいでしょう。