From 32d74d39c26d51a569c3ede49245a826f63dfc60 Mon Sep 17 00:00:00 2001 From: Arun Bose Date: Sun, 17 Oct 2021 12:58:40 +0530 Subject: [PATCH 1/2] Delete file and folder from native fs working https://github.com/aicore/phoenix/issues/3 --- src/phoenix/fslib.js | 5 +++++ src/phoenix/fslib_native.js | 21 ++++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/phoenix/fslib.js b/src/phoenix/fslib.js index fb67728377..1e7b674bde 100644 --- a/src/phoenix/fslib.js +++ b/src/phoenix/fslib.js @@ -116,6 +116,11 @@ const fileSystemLib = { return filerLib.fs.rename(...args); }, unlink: function (path, cb) { + if(Mounts.isMountPath(path)) { + throw new Errors.EPERM('Mount root directory cannot be deleted.'); + } else if(Mounts.isMountSubPath(path)) { + return NativeFS.unlink(path, cb); + } return filerShell.rm(path, { recursive: true }, cb); }, showSaveDialog: function () { diff --git a/src/phoenix/fslib_native.js b/src/phoenix/fslib_native.js index 34e9def951..72ed3ea5be 100644 --- a/src/phoenix/fslib_native.js +++ b/src/phoenix/fslib_native.js @@ -194,6 +194,24 @@ function writeFile (path, data, options, callback) { }); } +async function unlink(path, callback) { + path = window.path.normalize(path); + let dirPath= window.path.dirname(path); + let baseName= window.path.basename(path); + Mounts.getHandleFromPath(dirPath, async (err, dirHandle) => { + if(err){ + callback(err); + } else { + try { + await dirHandle.removeEntry(baseName, { recursive: true }); + callback(); + } catch (err) { + callback(err); + } + } + }); +} + function mountNativeFolder(...args) { Mounts.mountNativeFolder(...args); } @@ -209,7 +227,8 @@ const NativeFS = { readdir, stat, readFile, - writeFile + writeFile, + unlink }; export default NativeFS; From f8eeaccf97dd6cca1b503f9ce4d5c7d5ee75c411 Mon Sep 17 00:00:00 2001 From: Arun Bose Date: Sun, 17 Oct 2021 13:11:28 +0530 Subject: [PATCH 2/2] Fix codacy errors. --- src/phoenix/fslib_native.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/phoenix/fslib_native.js b/src/phoenix/fslib_native.js index 72ed3ea5be..e0ce3c6c54 100644 --- a/src/phoenix/fslib_native.js +++ b/src/phoenix/fslib_native.js @@ -194,6 +194,15 @@ function writeFile (path, data, options, callback) { }); } +async function _deleteEntry(dirHandle, entryNameToDelete, callback, recursive=true){ + try { + await dirHandle.removeEntry(entryNameToDelete, { recursive: recursive }); + callback(); + } catch (err) { + callback(err); + } +} + async function unlink(path, callback) { path = window.path.normalize(path); let dirPath= window.path.dirname(path); @@ -202,12 +211,7 @@ async function unlink(path, callback) { if(err){ callback(err); } else { - try { - await dirHandle.removeEntry(baseName, { recursive: true }); - callback(); - } catch (err) { - callback(err); - } + _deleteEntry(dirHandle, baseName, callback); } }); }