JavaScript というよりは JScript なので、Windows でしか動作しませんが、フォルダを表示する例です。
D ドライブが無い場合は、<BODY onload="listFiles('C:\\');"> に変えて試してみてください。
下記を適当な名前の HTML ファイルに保存し起動すると、フォルダとファイルの一覧を表示します。
フォルダをクリックすると、そのフォルダの一覧表示に変わります。
<HTML> <HEAD> <STYLE type="text/css"> <!-- th { background-color:#000099; color:#FFFFFF; } td.folder { background-color:#FFFFE0; color:#0000FF} td.file { background-color:#F0F0F0; } --> </STYLE> <SCRIPT type="text/JavaScript"> // フォルダ下のフォルダ・ファイル一覧表示 function listFiles( rootPath ) { var fs = new ActiveXObject("Scripting.FileSystemObject"); clearList(); document.getElementById("title").innerHTML = "<H3>" + rootPath + "</H3>"; // フォルダ一覧表示 var f = fs.GetFolder( rootPath ); if ( typeof(f.ParentFolder ) != "undefined" ) if ( f.ParentFolder != null ) addFolder( "親フォルダへ戻る", f.ParentFolder.Path ); // ファイル一覧表示 var fc = new Enumerator(f.SubFolders); for (; !fc.atEnd(); fc.moveNext()) addFolder( fc.item().Path, fc.item().Path ); fc = new Enumerator(f.files); for (; !fc.atEnd(); fc.moveNext()) addFile( fc.item().Path ); } // テーブルにフォルダを追加 function addFolder( dspPath, folderPath ) { var tr, td; var tbody = document.getElementById("fileList"); tr = tbody.insertRow(tbody.rows.length); td = tr.insertCell(tr.cells.length); td.setAttribute("className","folder"); td.innerHTML = "<A onclick=\"listFiles('" + folderPath.replace(/\\/g,'\\\\') + "');\">" + dspPath + "</A>" } // テーブルにファイルを追加 function addFile( filePath ) { var tr, td; var tbody = document.getElementById("fileList"); // node tree tr = tbody.insertRow(tbody.rows.length); td = tr.insertCell(tr.cells.length); td.setAttribute("className","file"); td.innerHTML = filePath; } // テーブルをクリア function clearList() { var tbody = document.getElementById('fileList'); for ( var i = tbody.rows.length - 1 ; i >0 ; --i ) { tbody.deleteRow( i ); } } </SCRIPT> </HEAD> <BODY onload="listFiles('D:\\');"> <DIV align="center"> <DIV id="title"></DIV> <TABLE id="fileList" border="1" width="90%"> <TR><TH align="center">パス</TH><TR> </TABLE> </DIV> </BODY> </HTML>
ご参考までに。
WSHとかで実現可能なのかなぁと考えておりましたが、JScriptというのがあるんですね。
コードも入れていただき大感謝です。有難うございました。