我在获取文件大小时遇到问题。我有以下代码:
File file = new File("/sdcard/lala.txt");
long length = file.length();
而且长度总是为零,是的,零。
我正在使用 Android SDK(不确定是什么版本),代码在 Activity 中运行,我创建了一个 sdcard。
也许是权限问题?我有什么遗漏吗?
最佳答案
File.length()
方法返回以下 according to the javadoc :
"The length, in bytes, of the file denoted by this abstract pathname, or 0L if the file does not exist. Some operating systems may return 0L for pathnames denoting system-dependent entities such as devices or pipes."
如您所见,可以返回零:
- 如果文件存在但包含零字节。
- 如果文件不存在,或者
- 如果文件是一些特定于操作系统的特殊文件。
我的钱在第二个案子上;即您的文件名/路径名错误。尝试在文件名上调用 File.exists()
看看它告诉你什么。我猜其他两种情况也是可能的。
(据记录,基于 Linux 的系统上的大多数 /proc/...
文件的文件大小也明显为零。Android 是基于 Linux 的。)
关于java - 获取android sdk中的文件大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7131930/