簡體   English   中英

canRead()和canWrite()都返回false

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM