|
Imports ICSharpCode.SharpZipLib.Zip
Public Class Form1
' ************************************************************
' 初期処理
' ************************************************************
Sub New()
' この呼び出しは、Windows フォーム デザイナで必要です。
InitializeComponent()
' InitializeComponent() 呼び出しの後で初期化を追加します。
Me.StartPosition = FormStartPosition.Manual
Me.Left = 0
Me.Top = 0
Me.Width = 900
Me.Height = 600
Me.LboxGrid1.UseParentFitForm = Me
Me.LboxGrid1.AllowDrop = True
Me.LboxGrid1.RowHeadersWidth = 50
Me.LboxGrid1.AddColumn("NAME", "名称")
Me.LboxGrid1.AddColumn("SIZE", "サイズ")
Me.LboxGrid1.AddColumn("SIZE2", "圧縮サイズ")
Me.LboxGrid1.AddColumn("DATE", "日付")
Me.LboxGrid1.AddColumn("PATH", "パス")
End Sub
' ************************************************************
' ドラッグ・ドロップ対象拡張子
' ************************************************************
Private Sub LboxGrid1_DragEnter(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.DragEventArgs) Handles LboxGrid1.DragEnter
' ファイルのパスを(複数)取得
Dim target As String() = CType(e.Data.GetData(DataFormats.FileDrop, False), String())
' 拡張子を分解
Dim ext As String = System.IO.Path.GetExtension(target(0))
ext = ext.ToUpper()
' 拡張子が ZIP で無ければ許可しない
If ext = ".ZIP" Then
e.Effect = DragDropEffects.Move
Else
e.Effect = DragDropEffects.None
End If
End Sub
' ************************************************************
' ドラッグ・ドロップ
' ************************************************************
Private Sub LboxGrid1_DragDrop(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.DragEventArgs) Handles LboxGrid1.DragDrop
' ファイルのパスを(複数)取得
Dim target As String() = CType(e.Data.GetData(DataFormats.FileDrop, False), String())
' 複数選択されていても、先頭のファイル
ListZipFile(target(0))
End Sub
' ************************************************************
' 一覧
' ************************************************************
Private Sub ListZipFile(ByVal Path As String)
Me.Text = Path
Dim zipFile As New ZipFile(Path)
Me.Cursor = Cursors.WaitCursor
Me.Enabled = False
Me.LboxGrid1.Clear()
Dim max As Integer = 100
Dim cnt As Integer = 0
For i As Integer = 0 To zipFile.Count - 1
Dim target As ZipEntry = zipFile(i)
If target.IsFile Then
cnt += 1
If cnt > max Then
Exit For
End If
Me.LboxGrid1.AddRow()
Me.LboxGrid1.SetRowHeaderText(cnt.ToString().Trim())
Me.LboxGrid1.SetColumnText("NAME", System.IO.Path.GetFileName(target.Name))
Me.LboxGrid1.SetColumnText("SIZE", target.Size.ToString())
Me.LboxGrid1.SetColumnText("SIZE2", target.CompressedSize.ToString())
Me.LboxGrid1.SetColumnText("DATE", target.DateTime.ToString())
Me.LboxGrid1.SetColumnText("PATH", target.Name)
End If
Next
zipFile.Close()
Me.Enabled = True
Me.Cursor = Cursors.Default
End Sub
End Class
| |