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

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文件等。

时间: 2024-09-23 14:48:17

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

批量删除文件夹下包含指定字段的文件

using System; using System.IO; using System.Text.RegularExpressions; class App { static void Main() { Console.WriteLine("##########################[程序使用说明]############################"); Console.WriteLine("--目 的:本程序用来删除指定文件夹下包含指定字段的文件用-----

代码分析-Java中如何判断文件夹下当天有没有放文件?

问题描述 Java中如何判断文件夹下当天有没有放文件? List files = ftpUtil.getFileList(this.ftpTaskFolder);//ftp任务目录上获取任务文件 // 获取机构号全量数据传输任务文件 String organcodeFileName = """"; for (int i = 0; files != null && i < files.size(); i++) { String tempFileN

log4j:在某个文件夹下输出多个日志文件

问题描述 log4j:在某个文件夹下输出多个日志文件 开户的过程中,想让每个手机号对应一个日志文件,都放在同一个目录下. 日志文件的名字以手机号来命名.使用log4j,应该怎么做呢? 急求急求,大家帮帮忙...... 解决方案 log4j输出多个自定义日志文件Log4j输出日志到文件[配置]log4j异步文件日志输出配置 解决方案二: 创建日志得时候用手机号命名呗

qtp-安装QTP后在Program file文件夹下找不到HP文件夹

问题描述 安装QTP后在Program file文件夹下找不到HP文件夹 在W7环境下安装了QTP11,默认安装路径为C:Program files/HP但是安装完之后找不到路径所指示的文件夹,怎么办? 解决方案 windows 7 64bit么?如果是64bit,在C:Program Files (x86)看看 解决方案二: 可以参考卸载后,换一个简单的目录安装试试,不要安装在 Program files 下

java服务器-tomcat服务器下的webapps文件夹下一定是放.class文件的吗

问题描述 tomcat服务器下的webapps文件夹下一定是放.class文件的吗 tomcat服务器下的webapps文件夹下一定是放.class文件的吗 如果是的话 windows平台下cmd命令行是javac 进行编译,然后复制到webapps文件夹下,ecplise又如何部署呢 解决方案 虽然也可以全部拷过去,但是java文件既没有用,而且大多数人也不愿意分享自己的源代码--而且生产环境的服务器万一被黑客获取,拿走你的程序,我想谁也不愿意吧.

在.net项目中,有的文件夹下有.cs文件,有的文件夹下的页面只有.aspx文件,没有.cs文件,这是怎么回事?

问题描述 在.net项目中,有的文件夹下有.cs文件,有的文件夹下的页面只有.aspx文件,没有.cs文件,这是怎么回事? 解决方案 解决方案二:没有要求,aspx必须配备cs文件,所以这很正常解决方案三:发布之后,所有的.cs文件都编译到dll中了,就只剩.aspx了,你可以在项目上右键发布看看解决方案四:.aspx是页面文件用来展现网页界面的,.aspx.cs是代码文件,用来编程实现功能逻辑的..这两个文件是绑定到一起的,后者是前者的脚本另外还有单独的.cs文件,,,那个也是用来写代码实现功

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

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.Han

SCR文件夹下的多个JAVA文件都是什么关系?

问题描述 鄙人是新手,使用JDK+WTK+ECLIPSE,ECLIPSE工作目录中每个工程的SCR文件夹中都有多个JAVA文件,请问这些JAVA文件之间是如何整合起来的?相互之间是否可以引用?初学者,有些问题可能很没营养,让各位见笑了,还望不吝赐教. 解决方案 解决方案二:我也是初学者,不懂啊?解决方案三:补充一个问题,如果这些文件之间可以互相引用,具体采用的是什么方式?解决方案四:很多东西都是默认引入了的就像C语言可以只写voidmain(){printf();}SRC下很多都是JAVA自带的

将E盘下的180文件夹下的所有最深层文件放到E盘下的car文件加下,并且要求重命名文件,并且判断最里层文件同目录下是否有多个文件,并且判断文件夹是否为空

package com.cheyoushuor.enamefile; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; public