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.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-10-25 10:17:46

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

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

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文件等等)_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.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