如何正确获取android.net.Uri的文件大小?

如何正确获取android.net.Uri的文件大小?,第1张

概述我有一个android.net.Uri指向我需要确定文件大小的文件.目前,这是通过对contentResolver的查询来完成的(我正在使用Xamarin,所以它是C#):varcursor=contentResolver.Query(uri,newstring[]{Android.Provider.OpenableColumns.Size,Android.Provider.OpenableColum

我有一个android.net.Uri指向我需要确定文件大小的文件.目前,这是通过对contentResolver的查询来完成的(我正在使用Xamarin,所以它是C#):

var cursor = contentResolver.query(uri, new string[] {    AndroID.ProvIDer.OpenableColumns.Size,    AndroID.ProvIDer.OpenableColumns.displayname }, null, null, null);cursor.MovetoFirst();size = cursor.GetLong(0);filename = cursor.GetString(1);cursor.Close();

这在大多数情况下都有效,但是对于某些文件,该值似乎比正确的文件大小稍大(我使用Total Commander作为参考).

 

必须有更好的方法来执行此 *** 作,我确实需要确切的大小信息,并且由于文件很大,因此无法首先将它们读入内存.为什么我的方法会产生不正确的结果?

在此先感谢您的帮助.

解决方法:

尽管我没有找到查询为什么返回错误结果的原因,但是我找到了另一种获取文件大小的方法,该方法似乎可行:

using (var fd = contentResolver.OpenfileDescriptor(uri, "r"))    size = fd.StatSize;
总结

以上是内存溢出为你收集整理的如何正确获取android.net.Uri的文件大小?全部内容,希望文章能够帮你解决如何正确获取android.net.Uri的文件大小?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1077076.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存