【发布时间】:2021-02-24 14:38:11
【问题描述】:
我想制作一个 Android 应用来列出文件及其大小,有点像 Windows 上的 WinDirStat 或 TreeSize,或 Android 上的 DiskUsage。
我试过这个来获取文件列表:
for (file in File("/sdcard").listFiles()) {
println(file)
}
但它只提供目录
+-----------------------------------------------+
| Expected output | Output |
+-----------------------------------------------+
| Alarms | DCIM |
| Android | Pictures |
| Audiobooks | ZEPETO |
| Aurora | Audiobooks |
| DCIM | Solid Color Wallpaper |
| Documents | Snapchat |
| Download | Aurora |
| EnergizedProtection | aria2 |
| Movies | Ringtones |
| Music | TWRP |
| Notifications | Documents |
| Pictures | Music |
| Podcasts | Telegram |
| Ringtones | Notifications |
| Snapchat | WhatsApp |
| Snapseed | Download |
| Solid Color Wallpaper | Movies |
| TWRP | Android |
| Telegram | EnergizedProtection |
| WhatsApp | Snapseed |
| ZEPETO | Podcasts |
| aria2 | Alarms |
| out.txt | |
| thisisafile.txt | |
+-----------------------------------------------+
我有一个<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 和一个适用于 Android 10 的
编辑:
根据 djacobsen13,我使用 file.walk 进行了测试,但它也没有列出 out.txt 或 thisisafile.txt。但它列出了其他 .txt 文件(在缓存或 Android 文件夹的深处),所以我认为这与目录无关,只是出于奇怪的原因没有列出一些文件
编辑 2:
正如blackapps所说,我在这里添加的问题没有描述,我想列出文件夹的所有文件(“/sdcard”这里或其中的任何其他文件夹),但它只返回文件夹而不是文件
我把应用放到了 GitHub 上:https://github.com/victorbnl/andirstat
编辑 3:
它列出了 Android 9 上的所有文件
【问题讨论】:
-
好的。但所用设备的 Android 版本是什么?
-
out.txt | | | thisisafile.txt这些看起来很像文件。 -
println(file)不会打印文件大小。没有。 -
是的,这些是文件,但这些是预期的输出!而且我还不想要它们的大小,只是为了正确列出文件。不过谢谢你的回答!
-
版本是Android 10,抱歉忘记了