NonSoft

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


 サンプル(ソース/コード)
<このサンプルの概要>
指定フォルダ内に存在する全てのファイルの文字コードを判定(判別)し一覧表示するサンプル(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