我正在尝试通过应用程序(以编程方式)从手机(硬件)的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。
答案 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();
确保其他任何应用在删除时都没有备份您的数据。