2016年9月16日金曜日

プログラムが保存されているフォルダのPathを取得する

プログラムが保存されているフォルダに各種情報を保存するフォルダを作成したりする時に使います。
HTAとWSHとで利用できるオブジェクトが異なります。


fs = new ActiveXObject('Scripting.FileSystemObject')

// HTAの場合 (WSFではlocationオブジェクトが無いのでエラーになる)
// ローカルフォルダの場合は「C:/~」のようなPath。UNCパスなら「//PC名/~」のようなPathが入る
基準フォルダ = fs.GetParentFolderName(location.href.replace(/^file:/,'').replace(/^\/+([A-Z]:)/,'$1'))

// WSHの場合 (HTAではWScriptオブジェクトが無いのでエラーになる)
基準フォルダ = fs.GetParentFolderName(WScript.ScriptFullName)


ちなみに「fs.GetFolder('.')」でも出来そうな気がするかもしれませんが、それだとカレントディレクトリのPathになるので、カレントディレクトリと対象フォルダが一致していない状況の時に不都合が生じます。

0 件のコメント:

コメントを投稿