SMART LLC

ZIPファイルを作成する方法(.NET)

公開日: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のパスを返す。

ファイルを指定して圧縮できたらもっと簡単にできるのにフォルダ指定だからこんなんなっちまった。
まあいいでしょう。

SHARE