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

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

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


スポンサーリンク

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

@H_404_23@
  • メニューから、[プロジェクト]-[参照の追加]を選ぶと、[参照マネージャー]が表示されます。
    [アセンブリ]-[フレームワーク]をクリックして、[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)
    


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

    End Module

    猜你在找的VB相关文章