vb.net ファイル圧縮・解凍など

前端之家收集整理的这篇文章主要介绍了vb.net ファイル圧縮・解凍など前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
http://ajya.hatenablog.jp/entry/2015/08/21/060000
@H_301_5@
スポンサーリンク

.NET Framework 4.5からzip形式の圧縮/解凍ができるようになっている


スポンサーリンク

初期状態のままでは機能を利用できないので、プロジェクトに参照の追加を行います。

  • メニューから、[プロジェクト]-[参照の追加]を選ぶと、[参照マネージャー]が表示されます。
    [アセンブリ]-[フレームワーク]をクリックして、[System.IO.Compression.FileSystem]にチェックを入れて、[OK]ボタンをクリックします。

これで準備が完了し、操作ができるようになります。

次にソースコードです。
まずファイルの先頭で、次のように記述して、名前空間をインポートします。

Imports System.IO.Compression

zip形式ファイルを解凍するには、次のように記述します。

ZipFile.ExtractToDirectory("C:\test\test.zip", "C:\test\extract")

解凍先のフォルダが存在するとエラーになるので、再利用する場合は、解凍前に削除しておきます。

zip形式にフォルダを圧縮するには、次のように記述します。

.CreateFromDirectory)

圧縮後のファイルが存在した場合はエラーになるので、解凍時と同じように圧縮前に削除しておきます。

名前空間をインポートしない場合は、次のように記述します。

System.Compression.ZipFile)
System)


@H_301_5@ Imports System.IO
@H_301_5@ Imports System.IO.Compression
Module Module1
@H_301_5@ Sub Main()
@H_301_5@ '///// 指定したフォルダ下、ファイル有無の判断
@H_301_5@ 'Dim path As String = "D:\Test\既存フォルダ\判断フォルダ"
@H_301_5@ 'Dim ishavefile As Boolean = IsExistsFileInFolder(path)
@H_301_5@ 'If ishavefile Then @H_301_5@ ' MsgBox("存在") @H_301_5@ 'Else @H_301_5@ ' MsgBox("不存在") @H_301_5@ 'End If @H_301_5@ '///// 指定したフォルダ下のファイル全て削除する @H_301_5@ 'DeleteAllFillInDirectory("D:\Test\親フォルダ","*.csv") @H_301_5@ CopyFile("D:\Test\既存フォルダ\元データ1.csv","D:\Test\親フォルダ\元データ1.csv") @H_301_5@ '///// ++ファイル圧縮と解凍 @H_301_5@ ' ''(指定したフォルダ下のファイルを圧縮する) @H_301_5@ 'Dim startPath As String = "D:\Test\既存フォルダ" @H_301_5@ 'Dim zipPath As String = "D:\Test\親フォルダ" @H_301_5@ 'Dim extractPath As String = "D:\Test\親フォルダ" @H_301_5@ ' '' ファイルを圧縮する @H_301_5@ ''ZipFileToDirectory(startPath,zipPath,"result.zip") @H_301_5@ ' '' ファイルを解凍する @H_301_5@ 'Dim zipPath2 As String = "D:\Test\親フォルダ\result.zip" @H_301_5@ 'ExtractZipFileToDirectory(zipPath2,extractPath) @H_301_5@ ' ''--ファイル圧縮と解凍 @H_301_5@ End Sub @H_301_5@ ''' <summary> @H_301_5@ ''' 指定したフォルダ下に、ファイルを圧縮する @H_301_5@ ''' </summary> @H_301_5@ ''' <param name="sourceFileFolderPath"></param> @H_301_5@ ''' <param name="targetFileFolderPath"></param> @H_301_5@ ''' <param name="zipFileName"></param> @H_301_5@ ''' <remarks></remarks> @H_301_5@ Public Sub ZipFileToDirectory(ByVal sourceFileFolderPath As String,ByVal targetFileFolderPath As String,ByVal zipFileName As String) @H_301_5@ ZipFile.CreateFromDirectory(sourceFileFolderPath,targetFileFolderPath & "\" & zipFileName) @H_301_5@ ''' ZIPファイルを指定したフォルダ下に解凍する @H_301_5@ ''' <param name="zipFilePath"></param> @H_301_5@ ''' <param name="extractFilePath"></param> @H_301_5@ Public Sub ExtractZipFileToDirectory(ByVal zipFilePath As String,ByVal extractFilePath As String) @H_301_5@ ZipFile.ExtractToDirectory(zipFilePath,extractFilePath) @H_301_5@ ''' 指定したフォルダ下に、ファイル有無の判断 @H_301_5@ ''' <param name="folderPath">指定したフォルダパル</param> @H_301_5@ ''' <returns>true:ファイル有る、false:ファイル無し</returns> @H_301_5@ Public Function IsExistsFileInFolder(ByVal folderPath As String) As Boolean @H_301_5@ Dim fso = CreateObject("Scripting.FileSystemObject") @H_301_5@ If fso.GetFolder(folderPath).Files.Count = 0 Then @H_301_5@ '不存在 @H_301_5@ Return False @H_301_5@ Else @H_301_5@ '存在 @H_301_5@ Return True @H_301_5@ End If @H_301_5@ End Function @H_301_5@ ''' 指定したフォルダ下のファイルを削除する @H_301_5@ ''' <param name="deleteFileFolderPath"></param> @H_301_5@ ''' <param name="fileType">*.*(全て)/*.csv(csvファイルだけ)など</param> @H_301_5@ Public Sub DeleteAllFillInDirectory(ByVal deleteFileFolderPath As String,ByVal fileType As String) @H_301_5@ For Each foundFile As String In My.Computer.FileSystem.GetFiles( _ @H_301_5@ deleteFileFolderPath,_ @H_301_5@ FileIO.SearchOption.SearchAllSubDirectories,69); font-size:13.3333px; widows:1"> fileType) @H_301_5@ My.Computer.FileSystem.DeleteFile(foundFile,69); font-size:13.3333px; widows:1"> FileIO.UIOption.OnlyErrorDialogs,_
FileIO.RecycleOption.DeletePermanently)
@H_301_5@ Next @H_301_5@ ''' ファイルのコピー @H_301_5@ ''' <param name="sourceFilePath">元ファイルパス</param> @H_301_5@ ''' <param name="targetFilePath">目標ファイルパス</param> @H_301_5@ Public Sub CopyFile(ByVal sourceFilePath As String,ByVal targetFilePath As String) @H_301_5@ '\\コンピュータ名\共有名\(ディレクトリ名\)ファイル名 @H_301_5@ ' 既に同名のファイルが存在していても上書きする場合 @H_301_5@ System.IO.File.Copy(sourceFilePath,targetFilePath,True) @H_301_5@
End Module

猜你在找的VB相关文章