这是我的代码,只删除第一个已检查的文件。
我想删除所有已检查的文件,我需要更改哪些内容?
如何收集CheckArr [i]中的所有值?
代码仅删除网格中的第一个已检查文件。我想首先收集所有已检查的值,然后进行数据库调用。
boolean CheckArr[];
File[] currentFiles;
unhide.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
for (int i = 0; i < CheckArr.length; i++) {
if (CheckArr[i] == true) {
db = new DataBase(getBaseContext());
try {
db.createDataBase();
} catch (IOException e1) {
e1.printStackTrace();
}
Cursor DataC = db
.selectQuery("SELECT path FROM Photos where name ='" +
currentFiles[i].getName() + "'");
if (DataC.getCount() > 0) {
Bitmap bitmap =
decodeFile.decodeFile(new File(root + "/" + currentFiles[i].getName()));
try {
FileOutputStream
outputStream = new FileOutputStream(
new File(DataC.getString(DataC
.getColumnIndex("path"))));
outputStream.write(decodeFile.getBitmapAsByteArray(bitmap));
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
File file = new File(root + "/" +
currentFiles[i].getName());
file.delete();
inflateListView(currentFiles);
}
DataC.close();
db.close();
}
}
答案 0 :(得分:0)
你必须为游标DataC添加一个循环来删除所有文件,而不仅仅是第一个文件。
if (DataC.getCount() > 0) {
while (DataC.moveToNext()) {
//...
}
}