plugin permisos full content cordova ionic-framework cordova-plugins

permisos - ¿No se puede borrar el archivo usando cordova?



permisos cordova (2)

Estoy guardando mi archivo aquí: /storage/emulated/0/myApp/helloworld.wav

Estoy tratando de borrar este archivo

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, successCallback, errorCallback) function successCallback(fs) { fs.root.getFile(''/storage/emulated/0/myApp/helloworld.wav'', { create: false }, function(fileEntry) { fileEntry.remove(function() { alert(''File removed.''); }, errorCallback); }, errorCallback); } function errorCallback(error) { alert("ERROR: " + error.code) }

No elimina el archivo y siempre devuelve el error code 1 (no encontrado). ¿Alguien puede ayudarme a señalar lo que está mal?

cuando compruebo desde el administrador de archivos, aquí es donde mi archivo está físicamente: /storage/emulated/0/myApp/helloworld.wav pero siempre devuelve el código de error 1


Siento que la línea de abajo podría ser el problema, " window.requestFileSystem (LocalFileSystem.PERSISTENT, 0, successCallback, errorCallback) "

En algunas de las publicaciones que leí, se mencionó que el método requestfilsystem junto con el argumento LocalFileSystem.PERSISTENT no funcionará en Android a menos que el dispositivo esté rooteado.

Lo hice funcionar usando - " window.resolveLocalFileSystemURL (cordova.file.externalRootDirectory, successCallback, errorCallback); "

Si es necesario, puedo compartir el código de muestra para eliminar el directorio junto con los archivos que contiene. Por favor hagamelo saber. Espero eso ayude.

Aquí está el código de muestra según la solicitud,

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); };

Archivo de creación:

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 }


Tal vez sea mejor si usa un complemento con capacidades nativas, que guardará los archivos donde se guardarán y se garantizará el acceso de lectura y escritura.

Puedes verlo aquí: cordova-plugin-file

No sé en qué tipo de dispositivo está tratando de usar ese código. En esa página puede ver todas las diferentes rutas del sistema de archivos a diferentes sistemas operativos (Android, iOS, Blackberry, etc.).