TEMPORARY Delete

Root Directory の TEMPORARY File を全て削除します。
Chrome でサーバーから起動して下さい。
【Source Code】
<script type="text/javascript">
function errorHandler(e)
{   var msg = '';
    switch(e.code)
    {   case FileError.QUOTA_EXCEEDED_ERR:
            msg = 'QUOTA_EXCEEDED_ERR';
            break;
        case FileError.NOT_FOUND_ERR:
            msg = 'NOT_FOUND_ERR';
            break;
        case FileError.SECURITY_ERR:
            msg = 'SECURITY_ERR';
            break;
        case FileError.INVALID_MODIFICATION_ERR:
            msg = 'INVALID_MODIFICATION_ERR';
            break;
        case FileError.INVALID_STATE_ERR:
            msg = 'INVALID_STATE_ERR';
            break;
        default:
            msg = 'Unknown Error';
            break;
    };
    window.alert('Error: ' + msg);
}

function deleteFile(filename)
{   window.webkitRequestFileSystem(window.TEMPORARY, 0,
        function(fs)
        {   fs.root.getFile(filename, {},
                function(fileEntry)
                {   fileEntry.remove(
                        function()
                        {   window.alert("File Delete! : " + filename);
                        });
                });
        },
        errorHandler);
}

function toArray(list)
{ return Array.prototype.slice.call(list || [], 0);
}

function listResults(entries)
{ var fragment = document.createDocumentFragment();
  entries.forEach(
    function(entry, i)
    { deleteFile(entry.name);
    });
}

function onInitFs(fs)
{ var dirReader = fs.root.createReader();
  var entries = [];
  var readEntries =
    function()
    { dirReader.readEntries (
        function(results)
        { if (!results.length)
          { listResults(entries.sort());
          }
          else
          { entries = entries.concat(toArray(results));
            readEntries();
          }
        }, errorHandler);
    };
  readEntries(); // Start reading dirs.
}
window.webkitRequestFileSystem(window.TEMPORARY, 1024, onInitFs, errorHandler);
</script>

  1. webkitRequestFileSystem は RequestFileSystem を参照して下さい。
    onInitFs は RequestFileSystem が成功したときの関数です。
    errorHandler は RequestFileSystem が失敗したときの関数です。
    window.webkitRequestFileSystem(window.TEMPORARY, 1024, onInitFs, errorHandler);
    
  2. onInitFs() で TEMPORARY を検索して entries[] の配列に格納します。
    createReader(); でリーダーを取得します。
    dirReader.readEntries() でエントリーを検索します。
    見つかったときは entries.concat(toArray(results)); で配列に追加します。
    見つからなかった(全ての検索が終えた)ときは listResults() を呼び出します。
    function onInitFs(fs)
    { var dirReader = fs.root.createReader();
      var entries = [];
      var readEntries =
        function()
        { dirReader.readEntries (
            function(results)
            { if (!results.length)
              { listResults(entries.sort());
              }
              else
              { entries = entries.concat(toArray(results));
                readEntries();
              }
            }, errorHandler);
        };
      readEntries(); // Start reading dirs.
    }
    
  3. 全ての検索が終えたときに呼び出される listResults() 関数です。
    deleteFile(entry.name); でファイルを削除します。
    function listResults(entries)
    { var fragment = document.createDocumentFragment();
      entries.forEach(
        function(entry, i)
        { deleteFile(entry.name);
        });
    }
    
  4. ファイルを削除する deleteFile(filename); 関数です。
    fileEntry.remove() で削除して、成功したときは alert("File Delete! : " + filename); で知らせます。
    function deleteFile(filename)
    {   window.webkitRequestFileSystem(window.TEMPORARY, 0,
            function(fs)
            {   fs.root.getFile(filename, {},
                    function(fileEntry)
                    {   fileEntry.remove(
                            function()
                            {   window.alert("File Delete! : " + filename);
                            });
                    });
            },
            errorHandler);
    }
    
  5. 見つかった項目を配列に追加する関数です。
    function toArray(list)
    { return Array.prototype.slice.call(list || [], 0);
    }
    
  6. function errorHandler(e) はエラーが発生したときの Handler です。
    エラーが発生した状況を多少なりとも解析して表示しています。
  7. このプログラムを起動すると、Root Directory の TEMPORARY File を全て削除します。
    TEMPORARY File はブラウザの裁量で削除されるので、放っておいても差支えありません。
    Directory(フォルダー)構造には対応していないので、サブフォルダーのファイルは削除されません。

前田稔の超初心者のプログラム入門
超初心者のプログラム入門(JavaScript)