我想让用户选择在他们的SD卡上保存图像,我希望能够计算出这些图像的文件夹大小。我发现Environment.getExternalStorageDirectory()
返回内部存储空间。我能找到SD卡的唯一方法是使用ACTION_OPEN_DOCUMENT_TREE
请求。但这意味着我必须使用DocumentFiles而不是常规文件。我只能获得内容uri,而不是SD卡本身的直接路径。
因此,File.length()
适用于内部存储,但DocumentFile.length()
对外部存储速度极慢。有没有什么方法可以根据其内容uri获取文件夹的大小而不需要永久使用?或者我可以以某种方式找到SD卡的实际路径并使用文件代替?我找到了像/storage/3857-3732
这样的文件夹,但我似乎没有权限写信给它(是的,我有WRITE_EXTERNAL_STORAGE
权限。)