参考资料: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(); } }}