From 6a1b7a5eb88aec020294876c77a3a5fb4cef5ad9 Mon Sep 17 00:00:00 2001 From: David Dykstal Date: Mon, 28 May 2007 17:19:42 +0000 Subject: [PATCH] [189214] fix profile deletion in the metadata area --- .../internal/persistence/PFMetadataAnchor.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/PFMetadataAnchor.java b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/PFMetadataAnchor.java index 6f6a3f0e697..05c21b1f6a3 100644 --- a/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/PFMetadataAnchor.java +++ b/rse/plugins/org.eclipse.rse.core/src/org/eclipse/rse/internal/persistence/PFMetadataAnchor.java @@ -27,7 +27,7 @@ class PFMetadataAnchor implements PFPersistenceAnchor { IStatus result = Status.OK_STATUS; File profileFolder = getProfileFolder(profileName); if (profileFolder.exists()) { - profileFolder.delete(); + delete(profileFolder); } return result; } @@ -91,4 +91,19 @@ class PFMetadataAnchor implements PFPersistenceAnchor { return folder; } + /** + * Delete a File resource. If the resource is a directory then + * delete its children first. + * @param resource + */ + private void delete(File resource) { + if (resource.isDirectory()) { + File[] resources = resource.listFiles(); + for (int i = 0; i < resources.length; i++) { + File child = resources[i]; + delete(child); + } + } + resource.delete(); + } }