« SVNで古いリポジトリと新しいリポジトリをつなげる | メイン | ICU を使う »

2008年01月09日

ツール開発メモ:: ファイル名に出来ない文字をエスケープ

    

.NET だと、GetInvalidFileNameChars で使えない文字が得られるようだけど、それに相当する API が見当たらない。
と言うことで、使えないと言われている11文字だけエスケープする関数を作った。
以下のような感じ。

void EscapeFileName( std::string& filename ) {
  char* escapechar = "\\/,;:*?\"<>|";
  std::string::size_type n;
  while( (n = filename.find_first_of(escapechar)) != std::string::npos ) {
    filename.replace(n,1,1,'_');
  }
}

使えない文字を "_" に置換するのみ。
Shift JIS だと5C問題でこれじゃダメ。



投稿者 Takenori : 2008年01月09日 16:25




comments powered by Disqus
Total : Today : Yesterday : なかのひと