如何从相机文件夹中删除图像

时间:2017-08-28 20:08:35

标签: c# android xamarin.android

我正在尝试通过应用程序(以编程方式)从手机(硬件)的Camera文件夹中删除图像。我使用的代码如下

File file = new File(Environment.GetExternalStoragePublicDirectory(Environment.DirectoryDcim), "/Camera");

var images = file.ListFiles();

var file2 = new File(file.AbsolutePath, "/myImage.jpg");

bool deleted = file2.Delete();

AndroidManifest.xml仅具有以下权限

<uses-sdk android:minSdkVersion="16" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

显示的路径文件2是

"{/storage/emulated/0/DCIM/Camera/myImage.jpg}"

仍然没有从手机中删除图像。但是,当上面的代码第一次执行时,它会显示图像已被删除,即删除的变量是真的但是当我在我的手机中检查myImage.jpg时它仍然存在。

在后续的代码执行过程中,它不会在images变量中获得 myImage.jpg ,但会在移动相机文件夹中显示文件。

已经有答案in java,但我正在使用C#Xamarin。

1 个答案:

答案 0 :(得分:-1)

看来如果您有三星云服务自动备份您的数据,那么它仍会在手机相机文件夹中显示已删除的图像,除非您不手动从手机本身删除该图像。

以下代码正在运作

File file = new File(Environment.GetExternalStoragePublicDirectory(Environment.DirectoryDcim), "/Camera");

var images = file.ListFiles();

var file2 = new File(file.AbsolutePath, "/myImage.jpg");

bool deleted = file2.Delete();

确保其他任何应用在删除时都没有备份您的数据。