我有一个应用程序,其数据(由以前的开发人员)存储在基于用户的目录中:context.getDir(userLoginHash, Context.MODE_PRIVATE)
。而且没有用户列表-当用户登录应用程序尝试加载其目录的内容(或创建新目录)时,当用户注销应用程序时,目录仍保留在设备上。
现在我不想清理数据。因此,我需要获取此类文件夹的列表,但没有找到用于该文件夹的方法。这让我很困惑,因为任务看起来太明显了。我想念什么吗?我该怎么办?
答案 0 :(得分:2)
所以我需要获取此类文件夹的列表,但没有找到用于该文件夹的方法
并没有真正内置的东西。
我该怎么做?
开始于:
File motherOfAllUserDirectoriesAndOtherStuff = getDir("whatever", Context.MODE_PRIVATE).getParentFile();
您可以使用标准Java I / O(例如,motherOfAllUserDirectoriesAndOtherStuff
)遍历listFiles()
的所有内容。但是,请记住,并非motherOfAllUserDirectoriesAndOtherStuff
中的所有内容都是您的用户目录。 SharedPreferences
,数据库,其他文件等也将在其中。您将需要设计一种算法,该算法可以确定motherOfAllUserDirectoriesAndOtherStuff
的子目录是否是您的用户目录之一,也许基于散列的样子。
如果有一天可以重写它,请创建您自己的根目录并将用户目录放在其中。爱荷华州:
File userDir = new File(getDir("myAppRoot", Context.MODE_PRIVATE), userLoginHash);