プロフィール

pueblo del script
作者
azul-palazzo
作者プロフィール
業務PG暦6年、趣味のPGは10年以上の微妙な中堅プログラマ。言語はVB, VB.NET(ASP.NETも込), Java, JSP。WSHはオフィシャルなEngineであるVBScript, JScript両方をカバー。最近はRubyやDMonkeyをかじろうかなと考えている。あとネコアレルギーの疑いも何のその、無類のネコ好き。
メッセージを送る

»プロフィール

マイサイト



記事

WSHでショートファイル名からロングファイル名へ変換する

WSH

公開日:2009/02/10 00:00

試行錯誤した結果、どうやら、ShellのFolderItemオブジェクトのPathプロパティが常にロングファイル名を返してくれるようです。
そこで、こんな関数を作ってみました。

[JScript]

function getLongName(argPath){ // As String

var sh; //As Shell.Application
var fi; //As Shell.FolderItem

var cpyArg = "";

var dn = ""; // ディレクトリ名
var fn = ""; // ファイル名

var cpyArg = new String(argPath);

try{

sh = new ActiveXObject("Shell.Application");

// 引数のパスをディレクトリ名とファイル名に分割
cpyArg.search(/(.+\\)(.+)$/gi);
dn = RegExp.$1;
fn = RegExp.$2;

return sh.Namespace(dn).Items().Item(fn).Path;

}catch(ex){

return null;

}finally{

sh = null;
fi = null;

}

}

関数の仕様としては、入力したショートファイル名をパスとファイル名に分割し、それをFolderItemオブジェクトに当てはめ、パスを取得しているだけです。

これで大手を振って、4文字以上の拡張子が使用できますね。

»コメント(0)一覧

クリップ