From efbf030d1317d38e883fee1a81f8140751b27c7d Mon Sep 17 00:00:00 2001 From: Raphael Moll Date: Tue, 12 Oct 2010 14:15:26 -0700 Subject: [PATCH] Ensure FolderWrapper only lists files and directories. This matches the description of the original File.list better and avoid us seeing non-file objects that we can't deal with (e.g. pipes, etc.) Change-Id: Ie47c9926c2db4cd2605d277fe847c6a60e180d09 --- .../sdklib/src/com/android/sdklib/io/FolderWrapper.java | 2 +- .../src/com/android/sdklib/io/IAbstractFolder.java | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/io/FolderWrapper.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/io/FolderWrapper.java index a4601d317..33e31c188 100644 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/io/FolderWrapper.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/io/FolderWrapper.java @@ -91,7 +91,7 @@ public class FolderWrapper extends File implements IAbstractFolder { File f = files[i]; if (f.isFile()) { afiles[i] = new FileWrapper(f); - } else { + } else if (f.isDirectory()) { afiles[i] = new FolderWrapper(f); } } diff --git a/sdkmanager/libs/sdklib/src/com/android/sdklib/io/IAbstractFolder.java b/sdkmanager/libs/sdklib/src/com/android/sdklib/io/IAbstractFolder.java index bfbc86ddd..17c0dbda9 100644 --- a/sdkmanager/libs/sdklib/src/com/android/sdklib/io/IAbstractFolder.java +++ b/sdkmanager/libs/sdklib/src/com/android/sdklib/io/IAbstractFolder.java @@ -16,6 +16,8 @@ package com.android.sdklib.io; +import java.io.File; + /** * A folder. */ @@ -44,23 +46,32 @@ public interface IAbstractFolder extends IAbstractResource { boolean hasFile(String name); /** - * returns an {@link IAbstractFile} representing a child of the current folder with the + * Returns an {@link IAbstractFile} representing a child of the current folder with the * given name. The file may not actually exist. * @param name the name of the file. */ IAbstractFile getFile(String name); /** - * returns an {@link IAbstractFolder} representing a child of the current folder with the + * Returns an {@link IAbstractFolder} representing a child of the current folder with the * given name. The folder may not actually exist. * @param name the name of the folder. */ IAbstractFolder getFolder(String name); /** - * returns a list of existing members in this folder. + * Returns a list of all existing file and directory members in this folder. + * The returned array can be empty but is never null. */ IAbstractResource[] listMembers(); + /** + * Returns a list of all existing file and directory members in this folder + * that satisfy the specified filter. + * + * @param filter A filename filter instance. Must not be null. + * @return An array of file names (generated using {@link File#getName()}). + * The array can be empty but is never null. + */ String[] list(FilenameFilter filter); } -- 2.11.0