標籤:
參考資料:http://www.sandersdenardi.com/querying-and-removing-media-from-android-mediastore/
從媒體表中刪除:
private void delSourceFile(final String filePath) {
ThreadFactory.getNormaPool().execute(new Runnable() {
@Override
public void run() {
String[] retCol = {MediaStore.Audio.Media._ID};
Cursor cur = mActivity.getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
retCol,
MediaStore.MediaColumns.DATA + "=‘" + filePath + "‘", null, null);
if (cur.getCount() == 0) {
return;
}
cur.moveToFirst();
int id = cur.getInt(cur.getColumnIndex(MediaStore.MediaColumns._ID));
LogUtil.getLog().e("id=" + filePath);
cur.close();
try {
Uri uri = ContentUris.withAppendedId(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
id);
mActivity.getContentResolver().delete(uri, null, null);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
從本地刪除:
/**
* 從SD卡中刪除檔案
*/
public static void deleteFile(File file) {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
if (file.exists()) {
if (file.isFile()) {
file.delete();
}
// 如果它是一個目錄
else if (file.isDirectory()) {
// 聲明目錄下所有的檔案 files[];
File files[] = file.listFiles();
for (int i = 0; i < files.length; i++) { // 遍曆目錄下所有的檔案
deleteFile(files[i]); // 把每個檔案 用這個方法進行迭代
}
}
file.delete();
}
}
}
從MediaStorehe和sd中刪除媒體檔案