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