我在DCIM / Camera(默认目录)中创建图像,创建后我删除原始文件名并将新创建的图像重命名为已删除的文件名,如
OriginalFileName- image04.jpg
NewFileName - image04(1).jpg
删除OriginalFile,现在结构将如下所示
OriginalFileName - //Deleted
NewFileName - image04.jpg
上面工作得很好但是当我打开图库时,我看到一个名为image04(1).jpg
的空白图片,但在文件管理器中,它并不存在。
在完成上述操作后,如何刷新图库。 注意:在内部存储中进行处理时,不会创建空白图像,这只适用于外部SD卡存储(外部存储卡插槽)。
我使用Android Marshmallow,我发现在Lolipop中没有创建任何空白图像。
如何纠正。
编辑:
我使用ContentResolver.Delete(sourceURI, null, null);
但它抛出了异常。
sourceURI:{content://com.android.externalstorage.documents/tree/D660-18BD%3A/document/D660-18BD%3AAlbum%201%2F20180423_184057%20(1)%20(1).jpg}
例外:
{Java.Lang.UnsupportedOperationException: Delete not supported
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <657aa8fea4454dc898a9e5f379c58734>:0
at Java.Interop.JniEnvironment+InstanceMethods.CallNonvirtualIntMethod (Java.Interop.JniObjectReference instance, Java.Interop.JniObjectReference type, Java.Interop.JniMethodInfo method, Java.Interop.JniArgumentValue* args) [0x00089] in <e8c0e16a54534fa885244f0ad837c79e>:0
at Java.Interop.JniPeerMembers+JniInstanceMethods.InvokeNonvirtualInt32Method (System.String encodedMember, Java.Interop.IJavaPeerable self, Java.Interop.JniArgumentValue* parameters) [0x0001f] in <e8c0e16a54534fa885244f0ad837c79e>:0
at Android.Content.ContentResolver.Delete (Android.Net.Uri url, System.String where, System.String[] selectionArgs) [0x00068] in <e79c73bcbbb547688bef6c7e9665c95e>:0
at iPro.Droid.ResizePicActivity+<>c__DisplayClass35_0+<<StartProcessing>b__0>d.MoveNext () [0x00ddf] in H:\Android App\myapp\myapp.Android\ResizePicActivity.cs:583
--- End of managed Java.Lang.UnsupportedOperationException stack trace ---
java.lang.UnsupportedOperationException: Delete not supported
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:167)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.delete(ContentProviderNative.java:544)
at android.content.ContentResolver.delete(ContentResolver.java:1380)
}