0

这是我的代码,它只删除第一个检查的文件。

我想删除所有已检查的文件,我需要进行哪些更改?

如何收集 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();
            }
        }           
4

1 回答 1

0

您必须为光标 DataC 添加一个循环来删除所有文件,而不仅仅是第一个文件。

if (DataC.getCount() > 0) {
    while (DataC.moveToNext()) {
//...
    }
}
于 2013-05-02T19:10:26.970 回答