Unable to delete file using cordova?

后端 未结 2 1075
耶瑟儿~
耶瑟儿~ 2020-12-06 23:33

I am saving my file here : /storage/emulated/0/myApp/helloworld.wav

I am trying to delete this file

        window.requestFileSystem(Lo         


        
2条回答
  •  无人及你
    2020-12-07 00:03

    I feel the below line could be the issue, "window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, successCallback, errorCallback)"

    In some of the posts i read, it was mentioned that requestfilsystem method along with LocalFileSystem.PERSISTENT argument will not work in android unless the device is rooted.

    I made it work using - "window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory,successCallback, errorCallback);"

    If required, i can share the sample code for deleting directory along with files in it. Please let me know. Hope it helps.

    Here is the sample code as per the request,

    function clearDirectory() {
    
        if (sessionStorage.platform.toLowerCase() == "android") {
            window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory, onFileSystemDirSuccess, fail);
        } else {
            //for ios
            window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemDirSuccess, fail);
        }
    };
    
    function onFileSystemDirSuccess(fileSystem) {
        var entry = "";
        if (sessionStorage.platform.toLowerCase() == "android") {
            entry = fileSystem;
        } else {
            //for ios
            entry = fileSystem.root;
        }
        entry.getDirectory("Folder_Name", {
                create: true,
                exclusive: false
            },
            function(entry) {
                entry.removeRecursively(function() {
                    console.log("Delete successful !!!");
                }, fail);
            }, getDirFail);
    };
    
    function getDirFail(error) {
        alert("getDirFail - " + error.code);
    };
    
    function fail(error) {
        alert("fail - " + error.code);
    };
    

    File creation:

    function writeFile() {
                if (sessionStorage.platform.toLowerCase() == "android") {
                    window.resolveLocalFileSystemURL(cordova.file.externalRootDirectory, onFileSystemSuccess, onError);
                } else {
                    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, onError);
                }
    
            }    
    
            function onError(e) {
                alert("onError");
            };
    
            function onFileSystemSuccess(fileSystem) {
                var entry = "";
                if (sessionStorage.platform.toLowerCase() == "android") {
                    entry = fileSystem;
                } else {
                    entry = fileSystem.root;
                }
                entry.getDirectory("Folder_Name", {
                    create: true,
                    exclusive: false
                }, onGetDirectorySuccess, onGetDirectoryFail);
            };
    
            function onGetDirectorySuccess(dir) {
                dir.getFile(filename, {
                    create: true,
                    exclusive: false
                }, gotFileEntry, errorHandler);
            };
    
            function gotFileEntry(fileEntry) {
                // logic to write file in respective directory
            };
    
            function errorHandler(e) {
                // handle error
            }
    

提交回复
热议问题