From 872e97e895c63ee63916a789448fc613c18f0c55 Mon Sep 17 00:00:00 2001 From: Rossen Hristov Date: Tue, 26 Apr 2016 17:37:26 +0300 Subject: [PATCH] Fixed: Folder.clear fails to remove empty subfolders on Android Resolves #1945 --- apps/tests/file-system-tests.ts | 16 ++++++++++++++-- file-system/file-system-access.android.ts | 3 +++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/apps/tests/file-system-tests.ts b/apps/tests/file-system-tests.ts index f8144e628..b99e4fca8 100644 --- a/apps/tests/file-system-tests.ts +++ b/apps/tests/file-system-tests.ts @@ -462,8 +462,6 @@ export var testFolderClear = function () { folder.getFile("Test1.txt"); folder.getFile("Test2.txt"); var subfolder = folder.getFolder("subfolder"); - subfolder.getFile("Test3.txt"); - subfolder.getFile("Test4.txt"); var emptied; // << (hide) folder.clear() @@ -548,4 +546,18 @@ export function test_CreateParentOnNewFile(done) { return fs.knownFolders.documents().getFolder("folder1").remove(); }).then(() => done()) .catch(done); +} + +export function test_FolderClear_RemovesEmptySubfolders(done) { + let documents = fs.knownFolders.documents(); + let rootFolder = documents.getFolder("rootFolder"); + let emptySubfolder = rootFolder.getFolder("emptySubfolder"); + TKUnit.assertTrue(fs.Folder.exists(emptySubfolder.path), "emptySubfolder should exist before parent folder is cleared."); + rootFolder.clear().then( + () => { + TKUnit.assertFalse(fs.File.exists(emptySubfolder.path), "emptySubfolder should not exist after parent folder was cleared."); + rootFolder.remove(); + done(); + }) + .catch(done); } \ No newline at end of file diff --git a/file-system/file-system-access.android.ts b/file-system/file-system-access.android.ts index 7e3c6eded..c5fdafafe 100644 --- a/file-system/file-system-access.android.ts +++ b/file-system/file-system-access.android.ts @@ -300,6 +300,9 @@ export class FileSystemAccess { private deleteFolderContent(file: java.io.File): boolean { var filesList = file.listFiles(); + if (filesList.length === 0) { + return true;// Nothing to delete, so success! + } var i, childFile: java.io.File,