ファイル名に次の文字を使おうとすると
"<>|:*?\/
「ファイル名に次の文字は使えません:」ってWindowsに怒られちゃうじゃないですか。
プログラムで生成するファイルでファイル名をつけるときに、この種類の文字を避けようとして、判定方法を調べたらこんな簡単なメソッドが見つかりました。実は私、今まで知りませんでした。(私だけ?)
Path.GetInvalidFileNameChars メソッド
http://msdn.microsoft.com/ja-jp/library/system.io.path.getinvalidfilenamechars(VS.80).aspx
兄弟ともいうべき
Path.GetInvalidPathChars メソッド
http://msdn.microsoft.com/ja-jp/library/system.io.path.getinvalidpathchars(VS.80).aspx
もあります。
そのほかにも
System.IO.Path クラス
http://msdn.microsoft.com/ja-jp/library/system.io.path(VS.80).aspx
http://msdn.microsoft.com/ja-jp/library/system.io.path_members(VS.80).aspx
には多くのPath文字列処理にかかわる便利な静的メソッドが用意されています。
特に、
パス文字列の拡張子を変更
Path.ChangeExtension メソッド
http://msdn.microsoft.com/ja-jp/library/system.io.path.changeextension(VS.80).aspx
パス文字列を結合
Path.Combine メソッド
http://msdn.microsoft.com/ja-jp/library/system.io.path.combine(VS.80).aspx
は便利ですが、意外に使用されてないような気がします。
@IT総合トップ > テクノロジー > Insider.NET > .NET TIPS > ファイル名に使用できない文字をチェックするには?[2.0のみ、C#、VB]
http://www.atmarkit.co.jp/fdotnet/dotnettips/551invalidchars/invalidchars.html
にもありました。記事によると、
へえ、「CON、PRN、AUX、NUL、COM0~9、LPT0~9」というファイル名も使用できないんですね。知りませんでした…