ファイルのプロパティ
アクティブなドキュメントのプロパティを表示します。
Mery で表示する
- 確認ダイアログ(OK/キャンセル)に表示し、親フォルダを開く
- 警告メッセージボックス上に表示する
- アウトプットバーに表示する
※警告とアウトプットはソースコード内でコメントアウトしてあります。
#title = "ファイルのプロパティ"
#tooltip = "ファイルのプロパティを表示し、親フォルダを開く"
/**
* ファイルのプロパティを表示し、親フォルダを開く
*/
var path = document.FullName;
if ( ! path ) {
Status = " ドキュメントが保存されていません";
Quit();
}
else {
var fso = new ActiveXObject( "Scripting.FileSystemObject" );
var f = fso.GetFile( path );
var n = "\n";
var tab = "\t";
var d = path + n;
var folder = path.slice( 0, - document.Name.length ) + n;
var file = document.Name + n;
var t = "種類:" + tab + f.Type + n;
var s = "サイズ:" + tab
+ f.Size.toString().replace( /(\d)(?=(?:\d{3})+$)/g ,"$1," )
+ " バイト" + n;
var c = "作成日時:" + tab + DateTime( f.DateCreated ) + tab + n;
var m = "更新日時:" + tab + DateTime( f.DateLastModified ) + n;
// インデックス属性と暗号化属性は取得できない
var fa = f.Attributes;
var rhsac = ( fa & 1 ? "R" : "" ) // 読み取り専用属性
+ ( fa & 2 ? "H" : "" ) // 隠し属性
+ ( fa & 4 ? "S" : "" ) // システム属性
+ ( fa & 32 ? "A" : "" ) // アーカイブ属性
+ ( fa & 128 ? "C" : "" ); // 圧縮属性
var a = "属性:" + tab + ( rhsac.length ? rhsac : 0 ) + n;
var q = n + "フォルダを開きますか?";
// ※確認ダイアログに表示する
// フォルダを開きますか? → [OK] なら親フォルダを開く
if ( Confirm( folder + file + n + t + s + c + m + a + q ) )
new ActiveXObject( "WScript.Shell" ).Run( 'explorer /select, "' + path + '"' );
// ※メッセージボックス(警告ダイアログ)に表示する
// Alert( folder + file + n + t + s + c + m + a );
// ※アウトプットバーに表示する
// OutputBar.Writeln( d + s + c + m );
}
/**
* 日時を "YYYY/MM/DD hh:mm:ss" で返す
*/
function DateTime( date ) {
var dd = new Date( date );
// 1ケタの数字をゼロ埋めして2ケタで返す
var pad = function( str ) {
return str.replace( /[0-9]+/g , function( $0 ) {
return $0.length < 2 ? "0" + $0 : $0;
} ) }
return dd.getFullYear() + "/" + pad( ( dd.getMonth() + 1 ) + "/" + dd.getDate() ) +" "
+ dd.toLocaleTimeString();
}
プロパティダイアログを開く
表示されるまでにちょっとタイムラグがありますが、エクスプローラの 本物の プロパティダイアログを呼び出します。
※動作確認は Windows XP でしかしていません。
#title = "ファイルのプロパティ"
#tooltip = "ファイルのプロパティダイアログを表示する"
/**
* ファイルのプロパティダイアログを開く
*/
var path = document.FullName;
var filename = document.Name;
if ( ! $path ) {
Status = " ドキュメントが保存されていません";
}
else {
var shell = new ActiveXObject( "Shell.Application" );
shell.NameSpace( path.slice( 0, - filename.length ) )
.ParseName( filename )
.InvokeVerb( "プロパティ(&R)" );
// "プロパティ(&R)" の部分はエクスプローラの右クリックメニューのとおりの文字列にし、アクセラレータのアルファベットの前に & をつける
}
スポンサーリンク