vb.net ファイル圧縮・解凍など
来源:互联网 发布:手机简繁体转换软件 编辑:程序博客网 时间:2024/06/18 13:04
http://ajya.hatenablog.jp/entry/2015/08/21/060000
スポンサーリンク
.NET Framework 4.5からzip形式の圧縮/解凍ができるようになっている
スポンサーリンク
初期状態のままでは機能を利用できないので、プロジェクトに参照の追加を行います。
- メニューから、[プロジェクト]-[参照の追加]を選ぶと、[参照マネージャー]が表示されます。
[アセンブリ]-[フレームワーク]をクリックして、[System.IO.Compression.FileSystem]にチェックを入れて、[OK]ボタンをクリックします。
これで準備が完了し、操作ができるようになります。
次にソースコードです。
まずファイルの先頭で、次のように記述して、名前空間をインポートします。
zip形式ファイルを解凍するには、次のように記述します。
解凍先のフォルダが存在するとエラーになるので、再利用する場合は、解凍前に削除しておきます。
zip形式にフォルダを圧縮するには、次のように記述します。
圧縮後のファイルが存在した場合はエラーになるので、解凍時と同じように圧縮前に削除しておきます。
名前空間をインポートしない場合は、次のように記述します。
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)
End Sub
''' <summary>
''' ZIPファイルを指定したフォルダ下に解凍する
''' </summary>
''' <param name="zipFilePath"></param>
''' <param name="extractFilePath"></param>
''' <remarks></remarks>
Public Sub ExtractZipFileToDirectory(ByVal zipFilePath As String, ByVal extractFilePath As String)
ZipFile.ExtractToDirectory(zipFilePath, extractFilePath)
End Sub
''' <summary>
''' 指定したフォルダ下に、ファイル有無の判断
''' </summary>
''' <param name="folderPath">指定したフォルダパル</param>
''' <returns>true:ファイル有る、false:ファイル無し</returns>
''' <remarks></remarks>
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
''' <summary>
''' 指定したフォルダ下のファイルを削除する
''' </summary>
''' <param name="deleteFileFolderPath"></param>
''' <param name="fileType">*.*(全て)/*.csv(csvファイルだけ)など</param>
''' <remarks></remarks>
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, _
fileType)
My.Computer.FileSystem.DeleteFile(foundFile, _
FileIO.UIOption.OnlyErrorDialogs, _
FileIO.RecycleOption.DeletePermanently)
Next
End Sub
''' <summary>
''' ファイルのコピー
''' </summary>
''' <param name="sourceFilePath">元ファイルパス</param>
''' <param name="targetFilePath">目標ファイルパス</param>
''' <remarks></remarks>
Public Sub CopyFile(ByVal sourceFilePath As String, ByVal targetFilePath As String)
'\\コンピュータ名\共有名\(ディレクトリ名\)ファイル名
' 既に同名のファイルが存在していても上書きする場合
System.IO.File.Copy(sourceFilePath, targetFilePath, True)
End Sub
End Module
0 0
- vb.net ファイル圧縮・解凍など
- vb.net ファイル操作クラス
- vb.net xmlファイルを読み込み
- [VB.NET]VB REDIM
- VB与VB.NET
- VB.Net与VB
- VB与VB.NET
- vb.net
- VB。NET
- vb.net
- vb.net
- vb.net
- vb.net
- VB.net
- VB.NET
- VB.NET
- VB.net
- VB.NET
- python 数据初学者 小记
- 面试题总结-Linux常用命令
- 【离散数学】搜集、并搜集、交搜集、求A = {{Φ, 2}, {2}}的并搜集和交搜集
- handler必须在主线程中实例化吗?
- 图片框架:Fresco 的基本使用
- vb.net ファイル圧縮・解凍など
- E - 4 Values whose Sum is 0
- 【codeup 1934】找x
- 15.行属性标签在包裹文字使用时,不需要设置宽高
- iOS 瀑布流基本实现
- XML pull解析
- ARC所有权修饰符---__strong修饰符
- OpenCV使用FileStorage保存Mat数据
- spring2.5.6在jdk1.8环境下运行的问题