お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"長いファイル名(フルパス)を取得5?"

この発言に対し以下のコメントが寄せられています
#01301 Fermion さん RE:長いファイル名(フルパス)を取得5?

■概要  パラメータとして渡されたファイル名(フォルダ名)を長いファイル名 (フォルダ名)に変換して返す関数とその使用例です。  ワイルドカードも使用できますが、その場合、条件に該当する最初の ファイル(フォルダ)名を返します。ただし、"*.*" のような指定では うまく行かないようです。 ((^^;) ■コンポーネント  Form1 に Edit1, Edit2, Button1 を適当に配置し、Button1.OnClick 等を以下のようにして下さい。 ■使い方  Edit1 に短いファイル名(フォルダ名)を入力し、Button1 をクリック して下さい。長いファイル名(フォルダ名)が Edit2 に表示されます。 ■サンプルコード //========================================================================= {...略...} implementation {$R *.DFM} uses ShlObj, ComObj, ActiveX; {************************************************************************** Short path --> Long path Function //************************************************************************} function GetLongPath( ShortPath: WideString ): String; var pIMalloc : IMalloc; pIShFDskTp : IShellFolder; pidl : PItemIDList; pchEaten, dwAttributes: Cardinal; Buffer : array[0..MAX_PATH] of Char; begin Result := ShortPath; OleCheck( SHGetDeskTopFolder( pIShFDskTp )); try pchEaten := 0; OleCheck( pIShFDskTp.ParseDisplayName( 0, nil, PWideChar(ShortPath), pchEaten, pidl, dwAttributes )); try if SHGetPathFromIDList( pidl, Buffer ) then Result := Buffer; finally OleCheck( CoGetMalloc( MEMCTX_TASK, pIMalloc )); pIMalloc.Free( pidl ); pIMalloc._Release; end;{try..finally..} finally // pIShFDskTp._Release; end; end; {************************************************************************** Button1Click //************************************************************************} procedure TForm1.Button1Click(Sender: TObject); begin Edit2.Text := GetLongPath( Edit1.Text ); end; {...略...} {************************************************************************** 初期化および終了処理部 //************************************************************************} initialization begin OleCheck( OleInitialize( nil ) ); end; finalization begin OleUnInitialize; end; {************************************************************************** //************************************************************************} end. //========================================================================= 00/10/24(Tue) 00:28pm Fermion [KHF03264]  - FDELPHI MES(16):玉石混淆みんなで作るSample蔵【見本蓄積】 00/10/28 - Original document by Fermion 氏 ID:(KHF03264)



ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum