ふぢのVB小技集

実行体があるフォルダへのフルパスを取得したい

(質問)
プログラムがインストールされているフォルダへのフルパスを取得したいのですが・・・



(回答)
AppオブジェクトのPathプロパティを使いましょう。



(解説)
AppオブジェクトのPathプロパティを参照することで、プログラムがインストールされているフォルダへのフルパスを取得できます。
ただ、この取得したフルパスにファイル名などを連結する際には注意が必要です。
通常、取得したフルパス文字列の最後には“\”は付加されていません。
そこでパス名とファイル名を連結する際に“\”を必ず付加するようにすると問題が発生する可能性があります。BR> めったに無いことですが、ユーザーがルートディレクトリにプログラムをインストールすると、App.Pathの値は“C:\”などのように“\”が付加されたものになってしまうのです。
固定で“\”を付加していると“C:\\abc.txt”のように“\”が重複してしまいます。
そこで、グローバル変数を1つ用意し以下のように処理を行うことをお勧めします。


App.Pathの内容をそのまま使用しない。

    'EXEファイルがあるパス名を取得
    gstrMyPath = App.Path
    
    'パス名の最後に"\"が無いか
    ' (ルートディレクトリで実行された場合の為の処置です)
    If Right$(gstrMyPath, 1) <> "\" Then
        
        'パス名の最後に"\"を付加する
        gstrMyPath = gstrMyPath & "\"
    
    End If

    'これ以降は、App.PathのかわりにgstrMyPathを使用する。
    '下の処理は、その一例です。

    'iniファイルのフルパス名称取得
    gstrIniPath = gstrMyPath & INI_FNAME


戻る