|
|||||
<このサンプルの概要> 指定フォルダ内に存在する全てのファイルの文字コードを判定(判別)し一覧表示するサンプル(C#.NET)です。 文字コードの判定には文字コード判定のサンプル(VB6/VB.NET)を使用しています。 もっと簡単に文字コード変換を実現したい場合はこちらのDLLがおすすめです。 文字コード判定/変換DLL(VB6/VB.NET/C#.NET) VB.NET版はこちらです。 文字コードを判定して指定の文字コードに変換するサンプル(VB.NET) 関連ツールとして、送ってPATHコピーは、 マウス右クリック→送る(SendTo)からファイル一覧のパスや属性や文字コード名を クリップボードへコピーするツールです。 関連情報 文字コードを判定して指定の文字コードに変換するサンプル(VB.NET) ADODB.Streamによる文字コード変換のサンプル(VB6/VB.NET) WideCharToMultiByteとMultiByteToWideCharによる文字コード変換のサンプル(VB6/VB.NET) 文字コード判定/変換ツール(VB6のソース付) 文字コード判定&変換ツール.NET ★フォームモジュール(Form1.vb) private void button1_Click(object sender, EventArgs e) { // 文字コード一覧ファイル削除 System.IO.File.Delete("codelist.txt"); // フォルダ内のファイルの一覧(リスト)取得 String[] flist = new String[] { }; GetFolderList(@"c:\temp", ref flist); for (int i = 0; i <= flist.Length - 1; i++) { System.IO.Stream sr = null; System.IO.BinaryReader br = null; try { // 入力ファイルをバイナリ形式で入力 sr = System.IO.File.Open(flist[i], System.IO.FileMode.Open, System.IO.FileAccess.Read); br = new System.IO.BinaryReader(sr); Byte[] dat = new Byte[] { }; Array.Resize<Byte>(ref dat, (int)sr.Length); dat = br.ReadBytes((int)sr.Length); // 文字コード判定 String cod = JudgeCode(dat); // ファイルのPATHと文字コード名を文字コード一覧ファイルに出力 System.IO.StreamWriter sw = null; try { sw = new System.IO.StreamWriter("codelist.txt", true, System.Text.Encoding.GetEncoding("Shift-JIS")); sw.WriteLine(flist[i] + "\t" + cod); } catch (Exception ex2) { throw ex2; } finally { if (sw != null) sw.Close(); } } catch (Exception ex) { throw ex; } finally { // ファイルのクローズ if (br != null) br.Close(); if (sr != null) sr.Close(); } } } /// <summary> /// フォルダ内のファイルの一覧(リスト)取得 /// </summary> /// <param name="ipath">フォルダPATH</param> /// <param name="flist">ファイルの一覧(リスト)</param> /// <remarks></remarks> public void GetFolderList(String ipath, ref String[] flist) { try { System.IO.DirectoryInfo curFol = new System.IO.DirectoryInfo(ipath); // ファイルの一覧作成 System.IO.FileInfo[] fil = curFol.GetFiles(); for (int i = 0; i <= fil.Length - 1; i++) { Array.Resize<String>(ref flist, (int)flist.Length + 1); flist[flist.Length -1] = fil[i].FullName; } // サブフォルダ内のファイル一覧作成 System.IO.DirectoryInfo[] fol = curFol.GetDirectories(); for (int i = 0; i <= fol.Length - 1; i++) { String[] strs = new String[] { }; GetFolderList(fol[i].FullName, ref strs); for (int j = 0; j <= strs.Length - 1; j++) { Array.Resize<String>(ref flist, (int)flist.Length + 1); flist[flist.Length - 1] = strs[j]; } } } catch (Exception ex) { throw ex; } } |