|
|||||
<このサンプルの概要> 指定フォルダ内に存在する全てのファイルの文字コードを判定(判別)し一覧表示するサンプル(VB.NET)です。 文字コードの判定には文字コード判定のサンプル(VB6/VB.NET)を使用しています。 もっと簡単に文字コード変換を実現したい場合はこちらのDLLがおすすめです。 文字コード判定/変換DLL(VB6/VB.NET/C#.NET) C#.NET版はこちらです。 文字コードを判定して指定の文字コードに変換するサンプル(C#.NET) 関連ツールとして、送ってPATHコピーは、 マウス右クリック→送る(SendTo)からファイル一覧のパスや属性や文字コード名を クリップボードへコピーするツールです。 関連情報 文字コードを判定して指定の文字コードに変換するサンプル(VB.NET) ADODB.Streamによる文字コード変換のサンプル(VB6/VB.NET) WideCharToMultiByteとMultiByteToWideCharによる文字コード変換のサンプル(VB6/VB.NET) 文字コード判定/変換ツール(VB6のソース付) 文字コード判定&変換ツール.NET ★フォームモジュール(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 |