android - 如何使用 std::ifstream 在 Android 上使用 C++ 获取文件大小?
问题描述
我正在尝试使用std::ifstream
. 我找到了https://stackoverflow.com/a/5840160/5884503并这样做了:
std::ifstream f;
f.open(filePath, std::ios_base::binary | std::ios::ate);
if (f.is_open()) {
ALOGV(TAG, "opened");
} else {
ALOGV(TAG, "problem opening");
}
auto size = f.tellg();
f.close();
__android_log_print(ANDROID_LOG_VERBOSE, "my tag", "filesize: %ld", size);
而且我0
一如既往地获取文件大小,即使该文件确实存在并且超过 1mb。
我知道这可以做到,std::filesystem
但这在 Android 上还没有或没有得到很好的支持。那么,怎么办std::ifstream
呢?
我的格式可能有问题吗?我不这么认为。
解决方案
推荐阅读
- ruby-on-rails - 使用 PostgreSQL OVERLAPS 方法的 Arel 表
- asp.net - 如何从进程中慢慢迁移到使用 Redis 作为会话状态提供程序?
- android - 如何在 Eclipse ADT 中使用 aar 库
- c# - Mono 中的 C# FileStream - 文件共享冲突
- dependency-injection - 具有多个混凝土的 Spring DI (Beans)……选择其中一个
- swift - 其他组件下 UISearchController 的 TableView 视图
- php - 从 PHP Web 服务输出中形成变量
- ios - WKWebView 不加载本地文档文件
- typescript - Typescript - 使用泛型扩展具有联合类型属性的接口
- git - 从 Github 上的贡献者列表中删除提交