//2009-10-07 4:37: //設定 //false:同じ階層のファイル全てを開く //true:アクティブなファイルと同じ拡張子を開く var SHOW_ONLY_SAME_EXT=true; //ファイルを開く前に確認画面を出す var SHOW_CONFIRM=true main(); ///////以下ライブラリ function OpenSameFolderFile(flag,flag2){ this.SHOW_ONLY_SAME_EXT=flag this.SHOW_CONFIRM=flag2 this.fso = new ActiveXObject("Scripting.FileSystemObject"); this.file_names_in_same_dir=function( filter ){ filter = filter ? filter : new RegExp('/*/'); var list=[] for (var e=new Enumerator(this.fso.GetFolder(document.Path).Files);!e.atEnd();e.moveNext()){ var name = e.item().name if(name.match(filter)){ list.push(name) } } return list; } this.extention=function(){ var ext = this.fso.GetExtensionName(document.FullName) return ext; } this.opened_filenames=function(){ var opened_files =[] for (var e=new Enumerator( editor.Documents);!e.atEnd();e.moveNext()){ opened_files.push(e.item().Name); } return opened_files; } //不要なモノをのぞいたファイル名一覧 this.file_names=function(filter){ var list = [] var ret_val = [] filter = filter ? filter: new RegExp('\.'+this.extention()+'$','g' ) var opened = this.opened_filenames() for( var s in arr=this.file_names_in_same_dir(filter)){ var is_opend=false for ( var i in opened ){ if ( arr[s] == opened[i] ){is_opend=true}; } if(is_opend)continue; ret_val.push( arr[s]) } ret_val.sort return ret_val; } this.show_main_menu=function(){ var main_menu= CreatePopupMenu() var all_file_menu = CreatePopupMenu() var filter = this.SHOW_ONLY_SAME_EXT ? false:".*" var list = this.file_names(filter) if(list.length==0){ main_menu.Add( "対象ファイルがありません", -1); main_menu.Track() return; } for ( var i in list){ all_file_menu.Add( list[i], parseInt(i)+1) } main_menu.Add( "次を開く(&N)", -1); main_menu.Add( "前を開く(&P)", -2 ); main_menu.Add( "全てを開く(&A)", -3); main_menu.AddPopup( "同階層ファイル一覧", all_file_menu ); ret =main_menu.Track(0) if(ret!=0){ selected = [] if(ret == -1)selected.push(list.shift()); if(ret == -2)selected.push(list.pop()); if(ret == -3)selected=list; if(ret > 0) selected.push(list[ret-1]) for( i in selected){ var ans=true; if(this.SHOW_CONFIRM) ans=confirm(selected[i]+"を開きますか?\n(この確認は設定で消すことが出来ます)"); if(ans){ editor.NewFile() editor.OpenFile(selected[i],eeOpenAllowNewWindow) } } } } } function main(){ obj = new OpenSameFolderFile(SHOW_ONLY_SAME_EXT,SHOW_CONFIRM); obj.show_main_menu() }