|
フォルダ内の文字コード一覧を表示するサンプル(VB.NET)

|
<このサンプルの概要>
指定フォルダ内に存在する全てのファイルの文字コードを判定(判別)し一覧表示するサンプルです。
文字コードの判定には文字コード判定のサンプル(VB6/VB.NET)を使用しています。
関連情報
文字コードを判定して指定の文字コードに変換するサンプル(VB.NET)
ADODB.Streamによる文字コード変換のサンプル(VB6/VB.NET)
WideCharToMultiByteとMultiByteToWideCharによる文字コード変換のサンプル(VB6/VB.NET)
文字コード判定&変換ツール.NET
文字コード判定/変換ツール(VB6のソース付)
★フォームモジュール(Form1.vb)
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' 文字コード一覧ファイル削除
System.IO.File.Delete("codelist.txt")
' フォルダ内のファイルの一覧(リスト)取得
Dim flist As String() = New String(-1) {}
GetFolderList("c:\temp", flist)
For i As Integer = 0 To UBound(flist)
Dim sr As System.IO.Stream = Nothing
Dim br As System.IO.BinaryReader = Nothing
Try
' 入力ファイルをバイナリ形式で入力
sr = System.IO.File.Open(flist(i), System.IO.FileMode.Open, System.IO.FileAccess.Read)
br = New System.IO.BinaryReader(sr)
Dim dat() As Byte = New Byte(sr.Length - 1) {}
dat = br.ReadBytes(sr.Length)
' 文字コード判定
Dim cod As String = JudgeCode(dat)
' ファイルのPATHと文字コード名を文字コード一覧ファイルに出力
Dim sw As IO.StreamWriter = Nothing
Try
sw = New IO.StreamWriter("codelist.txt", True, System.Text.Encoding.GetEncoding("Shift-JIS"))
sw.WriteLine(flist(i) & vbTab & cod)
Catch ex2 As Exception
Finally
If sw Is Nothing = False Then sw.Close()
End Try
Catch ex As Exception
Finally
' ファイルのクローズ
If br Is Nothing = False Then br.Close()
If sr Is Nothing = False Then sr.Close()
End Try
Next
End Sub
''' <summary>
''' フォルダ内のファイルの一覧(リスト)取得
''' </summary>
''' <param name="ipath">フォルダPATH</param>
''' <param name="flist">ファイルの一覧(リスト)</param>
''' <remarks></remarks>
Public Sub GetFolderList(ByVal ipath As String, ByRef flist As String())
Try
Dim curFol As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(ipath)
' ファイルの一覧作成
Dim fil As System.IO.FileInfo() = curFol.GetFiles()
For i As Integer = 0 To UBound(fil)
ReDim Preserve flist(UBound(flist) + 1)
flist(UBound(flist)) = fil(i).FullName
Next
' サブフォルダ内のファイル一覧作成
Dim fol As System.IO.DirectoryInfo() = curFol.GetDirectories()
For i As Integer = 0 To UBound(fol)
Dim strs As String() = New String(-1) {}
GetFolderList(fol(i).FullName, strs)
For j As Integer = 0 To UBound(strs)
ReDim Preserve flist(UBound(flist) + 1)
flist(UBound(flist)) = strs(j)
Next
Next
Catch ex As Exception
Throw ex
End Try
End Sub