0

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にファイルの作成と削除の許可を設定しました

4

1 に答える 1

1

SDカードのいくつかのファイルを削除するアプリケーションが必要だったので、あなたのコードを試しました。私の電話では、あなたのコードは機能しています。次の行で使用していることだけを認識しました

if (isDelete = true) {

比較演算子の代りの代入。したがって、if ステートメントは常に true と評価され、ファイルの削除が失敗した場合でも、削除が成功したことを常に出力すると思います。おもう

if (isDelete == true) {

あなたが書きたかったことです。コードに関する特定の問題について何も言わなかったので、コードをテストする以外にあなたを助ける方法がわかりません。

于 2012-12-28T14:00:25.430 に答える