// 検索パス名の \ は \\ か / で記述 var g_SerchPath = new Array(); g_SerchPath[0] = "D:/Subversion/MyProject/trunk/Src"; g_SerchPath[1] = "C:/Program Files/Microsoft Visual Studio 8/VC/include"; g_SerchPath[2] = "C:/Program Files/Microsoft Visual Studio 8/VC/PlatformSDK/Include"; g_SerchPath[3] = ""; g_SerchPath[4] = ""; // 隠しフォルダは検索しない設定 ( 0 で隠しフォルダも検索) var g_NotFindHiddenFolder = 1;
FileFindMain(); g_SerchPath = null;
function FileFindMain() { // 選択中の単語、又は、カーソル位置の単語を取得 var word = Editor.GetSelectedString(0); if (!word) { Editor.SelectWord(0); word = Editor.GetSelectedString(0); }
Editor.TraceOut("検索条件:" + word); var fso = new ActiveXObject("Scripting.FileSystemObject"); for (var i = 0; i < g_SerchPath.length; i++) { FileFindDir(g_SerchPath[i], word, fso); } fso = null; Editor.TraceOut( "" ); }
function FileFindDir(curDir, word, fso) { if (word == "") { return; } // 存在しないフォルダは戻る if (!fso.FolderExists(curDir)) { return; } // 隠しフォルダは戻る if (g_NotFindHiddenFolder != 0) { if (fso.GetFolder(curDir).Attributes & 0x02) { return; } }
// サブフォルダを列挙して、再帰的に処理 var subDirs = new Enumerator(fso.GetFolder(curDir).SubFolders); for (; !subDirs.atEnd(); subDirs.moveNext()) { FileFindDir(subDirs.item(), word, fso); } subDirs = null; // 検索 var reg = new RegExp(word, "ig"); reg.compile(word, "ig"); // ファイル名を列挙して、マッチしたファイル名を出力 var files = new Enumerator(fso.GetFolder(curDir).Files); for (; !files.atEnd(); files.moveNext()) { if (null != reg.exec(files.item().Name)) { Editor.TraceOut(curDir + "\\" + files.item().Name); } } files = null; reg = null; } -------------------------------------------ここまで