Cordova + Sencha Touch:使用后删除文件

时间:2015-02-18 01:16:03

标签: database file cordova sencha-touch delete-file

所以我使用Cordova + Sencha Touch作为应用程序,使用Antair的SQLitePlugin(https://github.com/Antair/Cordova-SQLitePlugin)来导入和使用SQLite数据库。

我设法使用Antair的importPrepopulatedDatabase(window.sqlitePlugin.importPrepopulatedDatabase({file:"mydb.db",importIfExists:false}))方法导入我的(有点大)预填充数据库,它工作得很好。事情是我注意到应用程序使用的大小是它实际需要的两倍,因为它在导入后保留文件。

我检查过,如果我从/ cordova / www / db中删除文件并再次构建,应用程序工作正常,它会将实际的数据库保留在应用程序的文件系统中,我想,但我找不到以编程方式删除的方法导入后的文件。

我环顾四周,发现了cordova文件插件(https://github.com/apache/cordova-plugin-file/blob/master/doc/index.md),但是从我从文档中看到它只授予www文件夹的读取权限,所以不会这样做。

有没有人为此做过任何解决方法?我真的可以使用那个额外的空间。

1 个答案:

答案 0 :(得分:1)

通过使用cordova文件插件api,您可以这样做,

请参考:

       deleteFile: function(fileName) {

    var that = this;

    if (!fileName) {
        console.error("No fileName specified. File could not be deleted.");
        return false;
    }

    window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, function(fileSystem){ // this returns the tmp folder 

        // File found
        fileSystem.root.getFile(fileName, {create: false}, function(fileEntry){
            fileEntry.remove(function(success){
                console.log(success);
            }, function(error){
                console.error("deletion failed: " + error);
            });
        }, that.get('fail'));
    }, this.get('fail'));

}