###前提
html5のFILE APIを用いてファイルを管理するシステムを作っています。
###該当のソースコード
html
1management 2<meta charset="utf-8"> 3<script src="../js/filesys.js"></script> 4 5<output id="result"></output> 6<form> 7 <textarea cols="20" rows="5" id="fsData"></textarea> 8</form> 9<script> 10 // ファイル一覧を取得しリストで出力する 11 viewFileList(); 12 function viewFileList() { 13 window.fsapi.getFiles("/", function(list) { 14 document.getElementById("result").innerHTML = "<ul>"; 15 var text = ""; 16 for (var i = 0; i < list.length; i++) { 17 if (list[i].isFile) { // ファイルの場合 18 text += '<li onclick=viewFile("' + list[i].name + '")>[File]'; 19 } else { // ディレクトリの場合 20 text += '<li>[Directory]'; 21 } 22 text += list[i].name + "</li>"; 23 } 24 document.getElementById("result").innerHTML = text + "</ul>"; 25 }); 26 } 27 // クリックされたらファイル内容を読み出す 28 function viewFile(filename) { 29 window.fsapi.readText(filename, function() { 30 document.getElementById("fsData").value = this.result; 31 }); 32 } 33</script>
javascript
1 //filesys.js 2window.fsapi = {}; 3window.fsapi.error = function(e){ console.log(e); } 4window.fsapi.readText = function(filename, successFunc){ 5 window.webkitRequestFileSystem( 6 TEMPORARY, / 7 0, // サイズ 8 function(fs){ // 成功時のコールバック関数 9 // ファイル処理 10 fs.root.getFile(filename, {}, 11 function(fileEntry){ 12 fileEntry.file(function(file){ 13 // ファイル読み出し 14 var reader = new FileReader(); 15 // 読み込み完了時の処理(文字をテキストエリアに出力) 16 reader.onload = successFunc; 17 reader.readAsText(file); 18 }); 19 }, 20 window.fsapi.error 21 ); 22 }, 23 window.fsapi.error 24 ); 25} 26// ディレクトリ一覧 27window.fsapi.getFiles = function(dirname, successFunc){ 28 window.webkitRequestFileSystem( 29 TEMPORARY, 30 0, // サイズ 31 function(fs){ // 成功時のコールバック関数 32 // 一覧を生成 33 fs.root.getDirectory(dirname, {}, 34 function(dirEntry){ 35 var dirReader = dirEntry.createReader(); 36 dirReader.readEntries(successFunc,window.fsapi.error); 37 }, 38 window.fsapi.error 39 ); 40 }, 41 window.fsapi.error 42 ); 43}
ルートディレクトリをクリックしてサブディレクトリ以下の内容を表示できるようにしたいです。
親ディレクトリの名前にバックスラッシュを付ければサブディレクトリは表示できると思うのですが、うまくいきません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。