文件清除缓存
来源:互联网 发布:手机淘宝自动挂机赚钱 编辑:程序博客网 时间:2024/05/29 12:37
public class MainActivity extends AppCompatActivity implements View.OnClickListener { private ImageView iv; private RelativeLayout clearLayout, versionLayout; private TextView versionTv, cacheTv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); } /** * 初始化缓存大小和版本信息 */ private void initData() { ImageLoader.getInstance().displayImage("图片地址", iv); initVersion(); initCaches(); } /** * 初始化缓存信息 */ private void initCaches() { long fileSize = 0; //获取data/data/包名/cache文件大小 fileSize += getDirSize(getCacheDir()); //获取files文件夹大小 fileSize += getDirSize(getFilesDir()); cacheTv.setText(formatFileSize(fileSize)); System.out.println("cachedir" + getCacheDir()); System.out.println("filesdir" + getFilesDir()); } /** * 初始化版本信息 */ private void initVersion() { //版本信息 try { PackageManager manager = getPackageManager(); PackageInfo packageInfo = manager.getPackageInfo(getPackageName(), 0); versionTv.setText("V" + packageInfo.versionName); } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } } private void initView() { iv = (ImageView) findViewById(R.id.iv); clearLayout = (RelativeLayout) findViewById(R.id.clear); versionLayout = (RelativeLayout) findViewById(R.id.version); cacheTv = (TextView) findViewById(R.id.tv_cache); versionTv = (TextView) findViewById(R.id.tv_version); clearLayout.setOnClickListener(this); versionLayout.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.clear: final AlertDialog.Builder clearBuilder = new AlertDialog.Builder(this); clearBuilder.setTitle("清理缓存"); clearBuilder.setMessage("确定要清理缓存?"); clearBuilder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { } }); clearBuilder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { clearCaches(); } }); clearBuilder.show(); break; case R.id.version: final AlertDialog.Builder versionBuilder = new AlertDialog.Builder(this); versionBuilder.setTitle("检查版本"); versionBuilder.setMessage("确定要版本更新?"); versionBuilder.setNegativeButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { } }); versionBuilder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { Toast.makeText(MainActivity.this, "走版本更新逻辑", Toast.LENGTH_SHORT).show(); } }); versionBuilder.show(); break; } } /** * 清理缓存 */ private void clearCaches() { //清除cache目录下缓存 clearCaches(getCacheDir()); //清除files目录下缓存 clearCaches(getFilesDir()); File sharedDir = new File("/data/data/" + getPackageName() + "/shared_prefs"); clearCaches(sharedDir); //清除成功后,重新设置下页面数据 cacheTv.setText("0B"); } /** * 清除缓存逻辑 * * @param dir */ private void clearCaches(File dir) { //判断file是文件夹 if (dir != null && dir.isDirectory()) { //得到该目录下所有文件 File[] f = dir.listFiles(); //遍历删除该目录下所有文件 if (f!=null&&f.length>0){ for (File file1 : f) { //删除方法 file1.delete(); } } Toast.makeText(MainActivity.this, "清除成功", Toast.LENGTH_SHORT).show(); } } /** * 获取目录文件大小 * * @param dir * @return */ public static long getDirSize(File dir) { if (dir == null) { return 0; } if (!dir.isDirectory()) { return 0; } long dirSize = 0; File[] files = dir.listFiles(); for (File file : files) { if (file.isFile()) {//如果是文件的,累加大小 dirSize += file.length(); } else if (file.isDirectory()) {//如果是目录,累加大小 dirSize += file.length(); dirSize += getDirSize(file); // 递归调用继续统计 } } return dirSize; } /** * 转换文件大小 * * @param fileS * @return B/KB/MB/GB */ public static String formatFileSize(long fileS) { DecimalFormat df = new DecimalFormat("#.00");//保留两位小数 String fileSizeString = ""; if (fileS < 1024) { fileSizeString = df.format((double) fileS) + "B"; } else if (fileS < 1048576) { fileSizeString = df.format((double) fileS / 1024) + "KB"; } else if (fileS < 1073741824) { fileSizeString = df.format((double) fileS / 1048576) + "MB"; } else { fileSizeString = df.format((double) fileS / 1073741824) + "G"; } return fileSizeString; }}
阅读全文
1 0
- 清除文件缓存
- 清除缓存文件
- 清除缓存文件
- ThinkPHP清除文件缓存
- 清除xcode 缓存文件
- 清除缓存文件
- 文件清除缓存
- ios-清除文件缓存
- 清除VS2008的缓存文件
- 清除VS2008的缓存文件
- clearstatcache -- 清除文件状态缓存
- ubuntu14.04 清除缓存文件
- 获取文件尺寸清除缓存
- IOS 清除APP缓存文件
- ThinkPHP5 清除runtime缓存文件
- iOS 文件管理器(文件操作, 缓存计算, 清除缓存)
- symbian 清除编译的缓存文件
- 清除JS和CSS缓存文件
- (2)Shiro学习过程中我用到的类和API
- [Android基础]Intent用法的二三事(下)——Data、Type、Extra、Flag的属性详解
- 第四周项目1 —建立单链表
- AI Programmer: 用基因算法生成程序 简介
- 表格展示与查询
- 文件清除缓存
- JS控制全屏
- html 英文不自动换行问题
- shell脚本 过滤出对应目录下的所有png文件名
- JS判断2个时间是否在同一周
- JS判断浏览器类型
- 第十二章 委托和Lambda表达式
- Java生成随机不重复推广码邀请码
- Spotify的敏捷教练都做什么?