トップ回答者
日本語ファイル名を取得するには?

質問
-
C# (.NET Framework 3.5)で、
string def_Folder = System.Environment.ExpandEnvironmentVariables("%SystemRoot%") + @"\Media";
string[] files = System.IO.Directory.GetFiles(def_Folder, "*.wav");
とすると、全てアルファベットのファイル名で取得されます。
たとえば、エクスプローラーでは「Windows エラー.wav」 が 「Windows error.wav」といった具合です。
目的は、
Hashtable listB1_ht = new Hashtable();
listB1_ht.Add("Windows エラー", "Windows error.wav");
としたい。
回答
-
「Windows error.wav」というのが本来のファイル名で、「Windows エラー.wav」が Desktop.ini で指定された表示用の名前だと思います。
http://reisato.plala.jp/rsato/weblog/2007/06/17/1414.html
ためしていませんが、Desktop.ini を読み込めば、日本語のファイル名を取得できるかもしれません。上記のURL先をみたところ、ファイル名は dll の中に埋め込まれているようなので、すごく苦労しそうですが。。。
なかむら(http://d.hatena.ne.jp/griefworker)- 回答としてマーク 山本春海 2011年2月3日 8:42
すべての返信
-
「Windows error.wav」というのが本来のファイル名で、「Windows エラー.wav」が Desktop.ini で指定された表示用の名前だと思います。
http://reisato.plala.jp/rsato/weblog/2007/06/17/1414.html
ためしていませんが、Desktop.ini を読み込めば、日本語のファイル名を取得できるかもしれません。上記のURL先をみたところ、ファイル名は dll の中に埋め込まれているようなので、すごく苦労しそうですが。。。
なかむら(http://d.hatena.ne.jp/griefworker)- 回答としてマーク 山本春海 2011年2月3日 8:42