获取根目录内容

Getting root directory contents

我有一个应用程序,其数据(由以前的开发人员)存储在基于用户的目录中:context.getDir(userLoginHash, Context.MODE_PRIVATE)。并且没有用户列表 - 当用户登录应用程序时尝试加载其目录的内容(或创建新目录),当用户注销时目录仍保留在设备上。

现在我不想清理数据。所以我需要获取此类文件夹的列表,但没有找到相应的方法。这让我很困惑,因为任务看起来太明显了。我想念什么吗?我该怎么做?

So I need to get list of such folders, but didn't find method for that

没有什么真正内置的。

How can I do this?

开始于:

File motherOfAllUserDirectoriesAndOtherStuff = getDir("whatever", Context.MODE_PRIVATE).getParentFile();

您可以使用标准 Java I/O(例如 listFiles())遍历 motherOfAllUserDirectoriesAndOtherStuff 的所有内容。但是,请记住,并非 motherOfAllUserDirectoriesAndOtherStuff 中的所有内容都是您的用户目录。 SharedPreferences、数据库、其他文件等也会在里面。您将需要设计一种算法来确定 motherOfAllUserDirectoriesAndOtherStuff 的子目录是否是您的用户目录之一,也许是基于散列的样子。

如果有一天你能重写它,创建你自己的根目录并将用户目录放在那里。 IOW:

File userDir = new File(getDir("myAppRoot", Context.MODE_PRIVATE), userLoginHash);