Last Updated 2004/02/03
Programming Tips Windows  索 引 
長いファイル名へ変換
2004/02/03

CEditView などファイルをドロップすると短いファイル名として渡されることがある.
読込だけならかまわないが,書き込みすると短いファイル名に変更されてしまう.
短いファイル名から長いファイル名へ変更するには FindFirstFile() を使用する.


WIN32_FIND_DATA fd;
HANDLE h = FindFirstFile("THIS_I~1.NAM", &fd);
if( h ) {
    cout << fd.cFileName << endl;          // 長い名前 "this_is_very_long.name"
    cout << fd.cAlternameFileName << endl; // 8.3形式  "THIS_I~1.NAM"
    FindClose( h );
}

Windows98 以降であれば GetLongPathName() が追加されている.
これだとディレクトリごとに変換する必要もないと思われる.


参照
前後のTips
長いファイル名へ変換

DSS ProgrammingTipsCGI Ver2.02