uses
Windows;
function ToShortFilename(const Filename: String): String;
var
Size: Integer;
begin
{ Calculate buffer size }
Size := GetShortPathName(PChar(Filename),nil,0);
if Size = 0 then
begin
Result := Filename;
Exit;
end;
{ Convert to short name }
SetLength(Result,Size);
Size := GetShortPathName(PChar(Filename),PChar(Result),Size);
SetLength(Result,Size);
end;
ただし対象となるファイルが存在しないと最初のGetShortPathName呼び出しで0が返ってきて変換不能になってしまうため、注意が必要です(この例では渡されたパス名をそのまま返すようにしています)。
2008年7月29日
ファイル名を短い形式に変換
長いファイル名(Long File Name)の混じったフルパス名を全て8.3形式の短いファイル名(Short File Name)に変換する(あまりあり得ない状況だとは思いますけど)にはGetShortPathNameを使用します。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿