java - 获取android sdk中的文件大小?

标签 java android file

我在获取文件大小时遇到​​问题。我有以下代码:

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/

相关文章:

java - 通用图像加载器太慢

android - 如何动态检查 XML 是否包含 UI 元素

java - 在 Java ME 中找不到 FileReader

java - 在非 JPA 模块中使用实体

java - 如何使用种子生成随机数,并用它们填充二维数组

java - 如何在 Firebase 中动态获取 key ?

c - C文件中最常见的字符

C++从文件中读取char,转换为long long int

c - 二进制文件开头是什么

java - hibernate 查询中来自 HashMap 的任意 'columns'