![](/img/trans.png)
[英]Java can't find my file even though I'm pretty sure I have the directory right
[英]Android File System - Can't write on file even though I have permissions
我正在嘗試制作一個以編程方式刪除文件的程序。 我的程序具有讀寫權限。
代碼可以過度簡化為:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
File asd = new File("/storage/emulated/0/Pictures/IMG_20210228_165109.jpg ");
System.out.println(asd.exists());//true
System.out.println(asd.setWritable(true));//true
System.out.println(asd.canWrite());//false
System.out.println(asd.delete());//false
}
是的,我對示例進行了硬編碼,但你明白了,真正的程序不是硬編碼的。 示例和實際程序都無法像這樣刪除文件。
我嘗試了 android 工作室的 Android 模擬器和我的手機。 兩次結果都是相同的——exists() 和 setWritable() 為 true,但 canWrite() 和 delete() 為 false。
為什么會這樣? (我手機的android版本是10,模擬器是11。)
三件事。
在清單中請求讀寫權限。
添加代碼以讓用戶在運行時確認這些權限。
對於 Android 10 設備,請在清單中請求舊版外部存儲。
在 Android 11 設備上,應用程序只能刪除自己的文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.