Android递归方式删除某文件夹下的所有文件(.mp3文件等等)

时间:2022-06-05 06:43:46 

1.由于需要删除文件,因此需要如下权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
2.核心代码


package com.example.deleteyoumi;
import java.io.File;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
/*
*@author: ZhengHaibo
*web: http://blog.csdn.net/nuptboyzhb
*mail: zhb931706659@126.com
*2013-4-28 Nanjing,njupt,China
*/
public class DeleteYouMiMainActivity extends Activity implements
OnClickListener {
private Button deleteButton;
private final static String youmiPathString = "/mnt/sdcard/Android/data/.youmicache/";//文件夹的路径
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_delete_you_mi_main);
deleteButton = (Button) findViewById(R.id.delete_youmi);
deleteButton.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.delete_you_mi_main, menu);
return true;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.delete_youmi:
File file = new File(youmiPathString);
DeleteFile(file);
mHandler.sendEmptyMessage(1);
break;
default:
break;
}
}
Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
Toast.makeText(getApplicationContext(), "文件或文件夹不存在", Toast.LENGTH_LONG).show();
break;
case 1:
Toast.makeText(getApplicationContext(), "删除成功!", Toast.LENGTH_LONG).show();
break;
default:
break;
}
};
};
/**
* 递归删除文件和文件夹
*
* @param file
* 要删除的根目录
*/
public void DeleteFile(File file) {
if (file.exists() == false) {
mHandler.sendEmptyMessage(0);
return;
} else {
if (file.isFile()) {
file.delete();
return;
}
if (file.isDirectory()) {
File[] childFile = file.listFiles();
if (childFile == null || childFile.length == 0) {
file.delete();
return;
}
for (File f : childFile) {
DeleteFile(f);
}
file.delete();
}
}
}
}


3.拓展
本文是以删除为例。当然,对于遍历某文件夹下的所有文件均可用这个方法。如搜索.mp3文件等。

标签:Android,递归,删除
0
投稿

猜你喜欢

  • 关于mybatis if else if 条件判断SQL片段表达式取值和拼接问题

    2023-02-04 18:51:21
  • Android封装的http请求实用工具类

    2021-09-16 03:03:52
  • Android中访问sdcard路径的几种方式

    2023-06-23 08:08:59
  • Android中的设计模式

    2022-09-13 06:33:21
  • Android弹窗ListPopupWindow的简单应用详解

    2021-08-04 19:42:52
  • 关于android连续点击出现多个Activity界面的解决方法

    2023-03-29 12:20:43
  • 浅谈java8中map的新方法--replace

    2022-03-11 20:10:30
  • Java二维码登录流程实现代码(包含短地址生成,含部分代码)

    2021-10-23 02:06:26
  • Android之listfragment的使用例子

    2021-05-31 02:10:19
  • IDEA(jetbrain通用)使用教程图解

    2023-04-15 04:05:49
  • C#基于XNA生成随机颜色的方法

    2021-07-05 08:34:50
  • java使用静态关键字实现单例模式

    2023-11-29 13:37:33
  • C#中常使用进度条的代码

    2021-06-27 23:31:18
  • C#网络编程基础之进程和线程详解

    2023-03-22 07:38:32
  • SpringCloud如何搭建一个多模块项目

    2022-10-22 13:33:39
  • Java实现上传文件图片到指定服务器目录

    2023-06-28 00:23:32
  • java 学习笔记(入门篇)_多选择结构switch语句

    2023-02-04 11:35:59
  • 使用SpringBoot实现微服务超时重试模式的示例

    2021-12-28 13:58:45
  • android实现滚动文本效果

    2022-02-02 16:49:36
  • SpringBoot 整合mybatis+mybatis-plus的详细步骤

    2022-09-29 21:06:10
  • asp之家 软件编程 m.aspxhome.com