![](/img/trans.png)
[英]file.delete() returns false even though file.exists(), file.canRead(), file.canWrite(), file.canExecute() all return true
[英]canRead() and canWrite() both return false
我以某種方式無法讀取或寫入文件。 我正在使用以下文件來獲取文件名。 對於大多數人來說,這也許很明顯,但是我的Java有點弱。
private String fileName(int itemNum) {
final String DIR_PREFIX = "/MyDailySelfiesDir";
final String FILENAME_PREFIX = "/MyDailySelfieFile_";
File dir_0 = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
String dirName = dir_0.getAbsolutePath() + DIR_PREFIX;
File dir = new File(dirName);
dir.mkdirs();
String name = dirName + FILENAME_PREFIX + itemNum + ".jpg";
File temp = new File(name);
Log.i(TAG, name + " can read? " + temp.canRead() + " can write? " + temp.canWrite());
return name;
}
AndroidManifest.xml如下所示:
<uses-sdk
android:minSdkVersion="18"
android:targetSdkVersion="19" />
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我在Android Studio中,模擬了Galaxy Nexus 5,API 18。
嘗試檢查yourFile.exists()的值。 除非您沒有發布所有代碼,否則您永遠不會在設備上實際創建File'temp'-您僅創建了File對象。 因此,如果File對象未映射到Android文件系統中的真實文件,則無法對其進行讀寫操作。可以使用File.createNewFile()創建文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.