16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"長いファイル名(フルパス)を取得2"
この発言に対し以下のコメントが寄せられています
#00957 小塚 明義 さん RE:長いファイル名(フルパス)を取得2
■概要
パラメータとして渡されたファイル名(フォルダ名)を長いファイル名
(フォルダ名)に変換して返す関数です。 ( SHGetFileInfo を使ってい
ます。)ワイルドカードも使用できます。その場合条件に該当する最初
のファイル(フォルダ)名を返します。
■注意
・LastDelimiter を使用していますので、Delphi2 では動作しません。
・指定したファイル(フォルダ)名が存在しない場合にはパスの最後が
"\"になります。
・uses に ShellAPI を追加して下さい。
■参考
・FDELPHI/MES/15/27,147,148,203
・FDELPHI/MES/16/564
・Delphi3 テクニカルハンドブック他。
■サンプルコード
//=====================================================================
function Get_LongPathName( ShortPathName: String ): String;
var
SHFI: TSHFileInfo;
Idx, L: Integer;
begin
Idx := LastDelimiter( '\', ShortPathName );
L := Length( ShortPathName );
if ( Idx = 0 ) or ( L <= 3 ) then
begin
Result := ShortPathName;
end
else if L = Idx then
begin
Result := Get_LongPathName( Copy( ShortPathName, 1, Idx - 1 ) );
end
else
begin
SHGetFileInfo( PChar( ShortPathName ), 0, SHFI,
SizeOf( TSHFILEINFO ), SHGFI_DISPLAYNAME );
Result := Get_LongPathName( Copy( ShortPathName, 1, Idx - 1 ) )
+ '\' + SHFI.szDisplayName;
end;
end;
//=====================================================================
98/06/17(水) 19:01 Fermion[KHF03264]
Original document by Fermion 氏 ID:(KHF03264)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|