0

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

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 中设置了创建和删除文件权限

4

1 回答 1

1

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

if (isDelete = true) {

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

if (isDelete == true) {

是你想写的。由于您没有说明您的代码遇到的具体问题,因此除了测试您的代码之外,我不知道如何帮助您。

于 2012-12-28T14:00:25.430 回答