안드로이드 미디어 파일 존재하지 않는 파일 디비에서 삭제 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());
}
}