使用 android 删除图像文件的错误
Bug from delete image file using android
我使用通用图像加载器方法创建了一个自定义图库应用程序
现在,我从图库中挑选一张图片并将其移动到我的应用程序文件夹中。我正在从 Gallery.The 问题中删除特定的选定图像,现在问题是即使删除图像后,该图像在图库中仍然可见,并且闪烁显示同一文件中的 0.0 KB 内存 name.How 以清除错误
请帮我解决这个问题。
注:
我已将图像从源路径移动到目标路径。我的目的地收到了特定的图像。
然后当我最终从源部分删除图像时,图像仍然可见,例如相同的文件名:IMG_20151106_193.jpg 内存大小 0.0kB
代码行:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
try {
if (resultCode == RESULT_OK) {
ArrayList<String> result = data.getStringArrayListExtra(Gallery_picker.KEY_ARRAYLIST_SELECTED_PHOTOS);
mSelectedPhotos.clear();
if (result == null) {
return;
}
Iterator<String> iterator = result.iterator();
while (iterator.hasNext())
{
String path = (String) iterator.next();
if (!mSelectedPhotos.contains(path))
{
mSelectedPhotos.add(path);
}
}
String[] mStringArray = new String[mSelectedPhotos.size()];
mStringArray = mSelectedPhotos.toArray(mStringArray);
for(int i = 0; i <mStringArray.length ; i++)
{
String path=""+ (String)mStringArray[i];//it contain your path of image..im using a temp string..
String filename=path.substring(path.lastIndexOf("/")+1);
/*** Move file in SD Card ***/
try {
File extStore = Environment.getExternalStorageDirectory();
fis = new File(path);
File fos = new File(extStore +"/Myfoldername/"+Subfoldername+"/"+customsimagename+".jpg");
copyFile(fis, fos); // Copy
fis.delete();
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
// Toast.makeText(this, "Failed! = " + e.getMessage(),Toast.LENGTH_LONG).show();
}
}
}
} catch (Exception e) {
}
}
更改图片路径后,需要通知图库更新,所以需要发送广播来制作。
在 4.4 之前,你可以这样调用:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse("file://"+Environment.getExternalStorageDirectory())));
4.4 之后,试试这个:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + file)));//the file is new image's path
我使用通用图像加载器方法创建了一个自定义图库应用程序
现在,我从图库中挑选一张图片并将其移动到我的应用程序文件夹中。我正在从 Gallery.The 问题中删除特定的选定图像,现在问题是即使删除图像后,该图像在图库中仍然可见,并且闪烁显示同一文件中的 0.0 KB 内存 name.How 以清除错误
请帮我解决这个问题。
注:
我已将图像从源路径移动到目标路径。我的目的地收到了特定的图像。
然后当我最终从源部分删除图像时,图像仍然可见,例如相同的文件名:IMG_20151106_193.jpg 内存大小 0.0kB
代码行:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
try {
if (resultCode == RESULT_OK) {
ArrayList<String> result = data.getStringArrayListExtra(Gallery_picker.KEY_ARRAYLIST_SELECTED_PHOTOS);
mSelectedPhotos.clear();
if (result == null) {
return;
}
Iterator<String> iterator = result.iterator();
while (iterator.hasNext())
{
String path = (String) iterator.next();
if (!mSelectedPhotos.contains(path))
{
mSelectedPhotos.add(path);
}
}
String[] mStringArray = new String[mSelectedPhotos.size()];
mStringArray = mSelectedPhotos.toArray(mStringArray);
for(int i = 0; i <mStringArray.length ; i++)
{
String path=""+ (String)mStringArray[i];//it contain your path of image..im using a temp string..
String filename=path.substring(path.lastIndexOf("/")+1);
/*** Move file in SD Card ***/
try {
File extStore = Environment.getExternalStorageDirectory();
fis = new File(path);
File fos = new File(extStore +"/Myfoldername/"+Subfoldername+"/"+customsimagename+".jpg");
copyFile(fis, fos); // Copy
fis.delete();
} catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
// Toast.makeText(this, "Failed! = " + e.getMessage(),Toast.LENGTH_LONG).show();
}
}
}
} catch (Exception e) {
}
}
更改图片路径后,需要通知图库更新,所以需要发送广播来制作。 在 4.4 之前,你可以这样调用:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,Uri.parse("file://"+Environment.getExternalStorageDirectory())));
4.4 之后,试试这个:
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + file)));//the file is new image's path