读/写文件时检查权限和大小的错误

时间:2016-04-08 19:07:29

标签: android io filesystems android-permissions android-file

在Android中,如果我想将文件从一个地方复制到另一个地方:

  1. 如何检查我是否拥有正确的Manifest权限?我知道你在清单中包含权限,但是假设我们不知道我们是否包括它 - 如果我们缺少权限,我们如何捕获异常?

  2. 如何验证我对源文件的读取权限?

  3. 如何验证我是否具有目的地的写入权限?

  4. 如何验证是否有足够的空间来执行写入?

  5. 如何验证写入是否成功执行?

1 个答案:

答案 0 :(得分:1)

  

如果我们缺少权限,我们如何捕获异常?

这取决于许可。

  

如何验证我对源文件具有读取权限?

File上的

Call canRead()

  

如何验证我是否具有目的地的写入权限?

File上的

Call canWrite()

  

如何验证是否有足够的空间来执行写入?

您不能,因为在您进行计算时,由于设备上其他应用的行为,该值可能已更改。

您可以使用methods on StatFs来确定可用空间,但我会给自己一个重要的缓冲区。

  

如何验证写入是否成功执行?

首先在getFD().sync()之后FileOutputStream之后flush()之前调用close(),以确保所有字节都写入磁盘并且不被内核缓存文件系统实现。对于大多数情况来说,这就足够了。

我们也欢迎您阅读内容并根据内存中的内容进行验证,以确认该文件似乎包含了应有的内容。