android 通过路径获取文件的大小
时间: 2024-12-24 07:33:18 浏览: 54
在Android中,你可以使用`File`类和`StatFs`类来获取指定路径下文件的大小。首先,你需要创建一个`File`对象表示你要检查的文件,然后使用`StatFs`类来获取文件系统的信息。以下是一个示例:
```java
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileInputStream;
import java.io.IOException;
import android.system.ErrnoException;
import android.system.Os;
public long getFileSize(String filePath) {
File file = new File(filePath);
if (!file.exists()) {
throw new IllegalArgumentException("File does not exist at the given path");
}
try (FileInputStream fis = new FileInputStream(file)) {
FileDescriptor fd = fis.getFD();
StatFs statFs = new StatFs(fd.toString());
long blockSize = statFs.getBlockSize();
long availableBlocks = statFs.getBlockCount() - statFs.getAvailableBlocks();
// 文件大小通常是块大小乘以可用块数
long fileSize = blockSize * availableBlocks;
return fileSize;
} catch (IOException | ErrnoException e) {
throw new RuntimeException("Failed to get file size", e);
}
}
```
这个函数首先检查文件是否存在,然后打开一个输入流,利用`FileDescriptor`获取`StatFs`对象,进而得到文件大小。如果在这个过程中发生错误,它将抛出异常。
阅读全文
相关推荐



















