2017-08-28 70 views
0

我試圖通過應用程序(以編程方式)從手機(硬件)的相機文件夾中刪除圖像。我使用的代碼如下如何從相機文件夾中刪除圖像

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" /> 

路徑file2的表現是

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

仍然它不刪除從圖像手機。但是,當上面的代碼執行第一次時,它顯示圖像已被刪除,即刪除變量是真實的,但當我檢查myImage.jpg在我的手機它仍然存在。

在隨後的代碼執行中,它不會獲得myImage.jpg圖像變量,但文件存在於移動Camera文件夾中。

已經有一個答案in java但我使用的是C#Xamarin。

+2

可能重複[如何在Android上以編程方式刪除文件?](https://stackoverflow.com/questions/24659704/how-do-i-delete-files-programmatically-on-android) – AndroidStorm

+0

您是怎麼做到的檢查設備上的圖像文件? –

+0

通過轉到手機的相機文件夾...我有相同的圖像相同的標題 – Karan

回答

0

看起來,如果您有三星雲服務自動備份您的數據,它仍然顯示手機相機文件夾中刪除的圖像,直到除非你不從手機本身手動刪除該圖像。

下面的代碼工作

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(); 

只要確保在刪除任何其他應用程序無法備份數據。

相關問題