如何删除SD卡特定路径中的所有文件?

时间:2012-12-28 08:50:43

标签: android sd-card

我想删除SD卡特定路径中的所有文件。我使用以下代码:

private void readFile(File[] file) {
   for (int i = 0; file != null && i < file.length; i++) {
      // now i check if it is a file or filename extension 
      if (file[i].isFile() && file[i].getName().endsWith("txt")) {
         fileList.add(file[i].toString());
      } else if (file[i].isDirectory()) {// if it is a file,recursive scanning
         File[] newFileList = new File(file[i].getAbsolutePath()).listFiles();
         readFile(newFileList);
      }
   }
}

现在我设置扫描路径:

public void onStart(Intent intent, int startId) {
String res = "";
try {
fileList = new ArrayList<String>();
File[] files = new File(FILEPATH).listFiles();
readFile(files);
for (File file : files) {
Log.i("syso", "" + file);
FileInputStream fin = new FileInputStream(file);
int length = fin.available();
byte[] buffer = new byte[length];
fin.read(buffer);
res = EncodingUtils.getString(buffer, "UTF-8");
// System.out.println(res);
boolean isDelete = file.delete();
if (isDelete = true) {
System.out.println("Deleted successful!!");
} else {
System.out.println("Deleted fail!!");
}

我在SDCard中设置了创建和删除文件权限

1 个答案:

答案 0 :(得分:1)

我尝试了你的代码,因为我需要一个应用程序来删除我的SD卡上的一些文件。在我的手机上你的代码正在运行。我只承认您在以下行中使用

if (isDelete = true) {

一个assingment而不是一个比较运算符。因此,我认为if语句将始终评估为true,并且即使删除文件失败,也始终打印删除成功。我想

if (isDelete == true) {

是你想写的。由于您没有对代码中的特定问题说些什么,除了测试代码之外,我不知道如何帮助您。