おやすみ!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()
がこのディレクトリへのアクセスをチェックするために十分であるが、私が間違っていたようだと思いました。
私はディレクトリを意味し '1!'
drwxrwx--x 10 root sdcard_rw 4096 2016-08-31 14:21 multirom
と
/storage/emulated/0/multirom
持っている - 私は
cd multirom/
ことができますが、私は
$ ls
ls: .: Permission denied
ことはできませんが
私が見る通り、file.canRead()
は実行能力のみをチェックするので、誰かがディレクトリを "入力"(実行)できますが、コンテンツを "読み込む"ことはできません。
質問はどこですか?私はそれについての詳細を見つけることができませんでした。なぜメソッドcanRead()が実行ビットと読み取りビットの両方をチェックするのではなく、ビットをチェックするのか? これは、このような問題を抱えている人を助けるでしょう。 ありがとうございます。ここで
私の質問はこれに関するものではありませんでした。なぜメソッドcanRead()が実行と読み取りの両方をチェックするのではなく、ビットをチェックするのか? – RedCollarPanda
ええと、Androidのドキュメントよりもはるかに詳細がわかりません。ソースコード内のcanRead()メソッドを調べて、それが何をしているのか正確に調べることができますか? –