使用android删除图像文件的错误
我已经创建了一个自定义的画廊应用程序使用通用图像加载器的方法 现在,我从图库中挑选一张图片并将其移动到我的应用程序文件夹中。我正在从库中删除特定选定的图像。现在的问题是,即使删除图像后,图像仍在库中可见,并闪烁显示相同文件名的0.0 KB内存。如何清除该错误 请帮我解决这个错误 注意: 我已将图像从源路径移动到目标路径。我的目的地收到了特定的图像 当我最终从源部件中删除图像时,图像仍然可见,文件名相同,例如:IMG_20151106_193.jpg memory size 0.0kB 代码行:使用android删除图像文件的错误,android,file,sd-card,file-copying,Android,File,Sd Card,File Copying,我已经创建了一个自定义的画廊应用程序使用通用图像加载器的方法 现在,我从图库中挑选一张图片并将其移动到我的应用程序文件夹中。我正在从库中删除特定选定的图像。现在的问题是,即使删除图像后,图像仍在库中可见,并闪烁显示相同文件名的0.0 KB内存。如何清除该错误 请帮我解决这个错误 注意: 我已将图像从源路径移动到目标路径。我的目的地收到了特定的图像 当我最终从源部件中删除图像时,图像仍然可见,文件名相同,例如:IMG_20151106_193.jpg memory size 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) {
}
}
@覆盖
受保护的void onActivityResult(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
试一试{
if(resultCode==RESULT\u OK){
ArrayList结果=data.getStringArrayListExtra(Gallery\u picker.KEY\u ArrayList\u SELECTED\u PHOTOS);
mSelectedPhotos.clear();
如果(结果==null){
返回;
}
迭代器迭代器=result.Iterator();
while(iterator.hasNext())
{
字符串路径=(字符串)迭代器.next();
如果(!mSelectedPhotos.contains(路径))
{
mSelectedPhotos.add(路径);
}
}
String[]mStringArray=新字符串[mSelectedPhotos.size()];
mStringArray=mSelectedPhotos.toArray(mStringArray);
对于(int i=0;i更改imgae路径后,您应该通知库进行更新,因此您应该发送广播进行更新。
在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
你能为你实际做的事情写一些代码吗?你的应用程序版本是什么?你从上面两个版本调用哪个代码。使用5.2应用程序版本..Firesunsee代码行上方我提到了SD卡中的/***移动文件***/是的,我看到了,我想你可以在其他不同版本的设备上尝试此代码,如果可行,那么你将为5.2设备自适应此功能。