ホーム
|
アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


Tips >   

同一のルートパスかどうか判定(PathIsSameRoot) 

更新 : 2011/07/09

 


解説:
アプリケーション内で取得した二つのパスが、同じであるのか違うのか比較したいときがあります。
Win32API 関数、PathIsSameRoot を使えばそれが行えます。
PathIsSameRoot 関数は引数に二つのパスを指定して、戻り値が true なら同一、false なら異なることが分かります。

ちょっと寄り道:
BOOL PathIsSameRoot(LPCTSTR Path1, LPCTSTR Path2);

Path1 判定するひとつ目のパス。
Path2 判定する二つ目のパス。
戻り値は、同じパスであれば true を違えば false を返す。

使用例:
以下の例では、アプリケーション起動後、Button1 をクリックすると、指定したパスが同じなら 1 を違えば 0 をメッセージとして返します。

準備は Button を適当に配置するだけです。
"shlwapi.h" をインクルードして、#pragma comment にスタティックライブラリ "shlwapi.lib" を
追加しておきます。

OnClick イベントハンドラで patht1 と path2 にパスを代入して、PathIsSameRoot 関数に渡し、
同じパスかどうかを調べています。
同一パスであれば "1"、違えば "0" のメッセージを表示します。

path1, path2 にいろいろなパスを代入してチェックしてみてください。

#include <shlwapi.h>
#pragma comment(lib, "shlwapi.lib") 
//-------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{     
    char *path1 = "C:\\abc\\My Documents\\kiki.vkl";
    char *path2 = "C:\\bgr\\src\\VBDeFM.c";

    // 同じルートならば True が返る。
    bool ret = PathIsSameRoot(path1, path2);
    ShowMessage(IntToStr(ret));
}
//-------------------------------------------------------------------
 



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.