2

私はphonegapファイル読み取り機能を使用しています。コンテンツを読み取ったら、そのコンテンツでいくつかの機能を実行します。それを超えると、ファイル切り捨て機能を呼び出します。その点で、値を切り捨てることはできません。この問題を解決するのを手伝ってください。

removeFileContent();

function removeFileContent(){
    console.log("Inside remove file content");
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFileTruncate, onProcessFailure);
};

function gotFileTruncate(fileSystem){
    console.log("Inside get file path for remove content");
    /** Function to get file path */
    filePath = getFilePath(device.platform);
    console.log("Device File Path to remove content-->"+this.filePath);
    fileSystem.root.getFile(filePath, null, gotFileEntryTruncate, onProcessFailure);
}

function gotFileEntryTruncate(fileEntry){
    globals.raiseLog("Inside file to truncate call");
    globals.raiseLog("File Name-->"+fileEntry.name);
    fileEntry.createWriter(gotFileWriter, onProcessFailure);
}

function gotFileWriter(writer){
    globals.raiseLog("Inside file writer to truncate file content");
    globals.raiseLog("Content length-->"+writer.length);
    //writer.truncate(10);
    writer.onwriteend = function(evt) {
        writer.truncate(0);
        writer.onwriteend = function(evt) {
        };
    };
    writer.write("");
    globals.raiseLog("Content length after truncate-->"+writer.length);
}

上記のgotFileWriter()で、writer.lengthをチェックすると、まだカウントが表示されます。ファイルが空になるのを確認する方法がわかりません。そのファイル内にテキストがあります。ファイルの読み取りが終了したら、ファイルをクリアする必要があります。読み取り機能を終了した後、removeFileContent()を呼び出しています。親切に助けてください。

4

1 に答える 1

3

コードの記述方法では、ファイルにまだ内容が含まれているという誤検知が発生する可能性があります。あなたを動かしてください:

globals.raiseLog("Content length after truncate-->"+writer.length);

書き込み呼び出しは非同期であり、ログが出力される前に終了しない場合があるため、onwriteend関数に追加します。

于 2012-10-19T13:51:21.120 に答える