我已经尝试使用下面的代码,我能够得到的捕获文件的路径,但无法删除路径或该路径中的数据.下面是我使用的代码来做到这一点.
public void clearApplicationData()
{
var tmpdir = System.IO.Path.GetTempPath();
File applicationDirectory = new File(tmpdir);
if (applicationDirectory != null && applicationDirectory.Exists())
{
//deleteFile(applicationDirectory);
string[] fileNames = applicationDirectory.List();
foreach (string fileName in fileNames)
{
if (!fileNames.Equals("lib"))
{
deleteFile(new File(applicationDirectory, fileName));
}
}
}
}
public static bool deleteFile(File file)
{
bool deletedAll = false;
if (file != null)
{
if (file.IsDirectory)
{
string[] children = file.List();
for (int i = 0; i < children.Length; i++)
{
deletedAll = deleteFile(new File(file, children[i])) && deletedAll;
}
}
else
{
file.DeleteOnExit();
deletedAll = file.Exists();
}
}
return deletedAll;
}
我还添加了CLEAR_APP_CATCH,CLEAR_APP_USER_DATA的权限请帮助我这样做,我愿意清除完整的应用程序的现金和数据,并在结束时,我愿意重新启动应用程序,以显示登录页面或结束应用程序。
1条答案
按热度按时间uqzxnwby1#
这将立即清除所有数据和缓存。它将关闭应用程序并释放内存。
如果你不想这样,你可以试试下面的代码。
另外,我建议您使用System.IO文件实用程序,而不是Java.IO文件实用程序。
您可以尝试同样的操作来删除应用程序数据,方法是使用
代替cachePath,但请记住,您的应用可能会表现得很滑稽,因为它仍然在堆内存中有信息,并且缺少相应的文件。例如,除此之外,您可能还希望清除SharedPrefs。