본문 바로가기

Linux

안드로이드 미디어 파일 존재하지 않는 파일 디비에서 삭제 cursor mediastore

//++WELGATE_DONGLE not exist file db -> remove by wsseo 2013.12.11
    public void deleteIsNotExistFiles(){
        try {
            Cursor image_c = mContext.getContentResolver().query(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null, null);
           
            Cursor audio_c = mContext.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null);
           
            Cursor video_c = mContext.getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null, null, null, null);
           
            int imgid_index = image_c.getColumnIndex(MediaStore.Images.Media._ID);
            int imgdata_index = image_c.getColumnIndex(MediaStore.Images.Media.DATA);
                   
            int audid_index = audio_c.getColumnIndex(MediaStore.Audio.Media._ID);
            int auddata_index = audio_c.getColumnIndex(MediaStore.Audio.Media.DATA);
           
            int vidid_index = video_c.getColumnIndex(MediaStore.Video.Media._ID);
            int viddata_index = video_c.getColumnIndex(MediaStore.Video.Media.DATA);
           
            if (image_c != null && image_c.moveToFirst()) {
                do {
                  long rowId = image_c.getLong(imgid_index);
                  String fullPathString = image_c.getString(imgdata_index);
                    File file = new File(fullPathString);
                    Log.v(TAG, "deleteIsNotExistFiles...image path : " + fullPathString);
                    if (!file.exists()) {
                        Uri uri = ContentUris.withAppendedId(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, rowId);
                        Log.v(TAG, "deleteIsNotExistFiles...image delete");
                        mContext.getContentResolver().delete(uri, null, null);
                    }
                } while (image_c.moveToNext());
            }
            if (image_c != null) {
                image_c.close();
            }
           
            if (audio_c != null && audio_c.moveToFirst()) {
                do {
                  long rowId = audio_c.getLong(audid_index);
                    String fullPathString = audio_c.getString(auddata_index);
                    File file = new File(fullPathString);
                    Log.v(TAG, "deleteIsNotExistFiles...audio path : " + fullPathString);
                    if (!file.exists()) {
                        Uri uri = ContentUris.withAppendedId(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, rowId);
                        Log.v(TAG, "deleteIsNotExistFiles...audio delete");
                        mContext.getContentResolver().delete(uri, null, null);
                    }
                } while (audio_c.moveToNext());
            }
            if (audio_c != null) {
                audio_c.close();
            }
           
            if (video_c != null && video_c.moveToFirst()) {
                do {
                  long rowId = video_c.getLong(vidid_index);
                    String fullPathString = video_c.getString(viddata_index);
                    File file = new File(fullPathString);
                    Log.v(TAG, "deleteIsNotExistFiles...video path : " + fullPathString);
                    if (!file.exists()) {
                        Uri uri = ContentUris.withAppendedId(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, rowId);
                        Log.v(TAG, "deleteIsNotExistFiles...video delete");
                        mContext.getContentResolver().delete(uri, null, null);
                    }
                } while (video_c.moveToNext());
            }
            if (video_c != null) {
                video_c.close();
            }
           
        } catch (Exception e) {
             Log.d("myLog", "deleteIsNotExistFiles Exception e : " + e.getMessage());
        }

    }