Skip to content

Commit

Permalink
Merge pull request #2037 from NativeScript/folder-clear
Browse files Browse the repository at this point in the history
Fixed: Folder.clear fails to remove empty subfolders on Android
  • Loading branch information
hamorphis committed Apr 27, 2016
2 parents 7b842a6 + 872e97e commit f9a83c7
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
17 changes: 16 additions & 1 deletion apps/tests/file-system-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -461,6 +461,7 @@ export var testFolderClear = function () {
// >> (hide)
folder.getFile("Test1.txt");
folder.getFile("Test2.txt");
var subfolder = folder.getFolder("subfolder");
var emptied;
// << (hide)
folder.clear()
Expand All @@ -478,7 +479,7 @@ export var testFolderClear = function () {
// >> (hide)
folder.getEntities()
.then(function (entities) {
TKUnit.assert(entities.length === 0, "Failed to clear a Folder");
TKUnit.assertEqual(entities.length, 0, `${entities.length} entities left after clearing a folder.`);
folder.remove();
});
// << (hide)
Expand Down Expand Up @@ -545,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);
}
3 changes: 3 additions & 0 deletions file-system/file-system-access.android.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit f9a83c7

Please sign in to comment.