0
美好的一天!Android/Java File.canRead()奇怪問題
有一個有趣的情況: 在我的代碼我走在/sdcard/
我的Android
電話,並嘗試找到一對文件。 當我打開目錄我嘗試:
if (listFiles != null && listFiles.length != 0) {
for (File file : listFiles) {
if (file.isDirectory() && file.canRead()) {
for (File innerFile : file.listFiles()) {
我認爲
file.canRead()
足夠用於檢查進入此目錄,但似乎我錯了。
我有一個目錄
/storage/emulated/0/multirom
與 'LS'
drwxrwx--x 10 root sdcard_rw 4096 2016-08-31 14:21 multirom
這意味着 - 我可以
cd multirom/
但我不能
$ ls
ls: .: Permission denied
所以我看到 - file.canRead()
只檢查執行能力,以便有人可以「進入」(執行)目錄,但不能「讀取」內容。
問題是 - 有沒有在這裏提到這個?我找不到有關它的詳細信息。爲什麼方法canRead()檢查執行位而不是檢查執行位和讀取位? 也許這會幫助有這種問題的人。 謝謝。
我的問題不是關於這個。爲什麼方法canRead()檢查執行位而不是同時檢查執行和讀取? – RedCollarPanda
嗯,我不確定你會發現比Android文檔中更多的細節。你可以調查源代碼中的canRead()方法,看看它在做什麼? –