reading/writing 个文件时对权限和大小进行错误检查
Error-checking for permissions and size when reading/writing files
在Android中,如果我想将一个文件从一个地方复制到另一个地方:
如何检查我是否拥有正确的清单权限?我知道您在清单中包含了权限,但假设我们不知道我们是否包含它——如果我们缺少权限,我们如何捕获异常?
如何验证我是否具有源文件的读取权限?
如何验证我是否具有目标的写入权限?
如何验证是否有足够的空间来执行写入?
如何验证写入是否成功?
how do we catch the exception if we lack the permission?
这因权限而异。
How can I verify that I have read access for the source file?
Call canRead()
在 File
.
How can I verify that I have write access for the destination?
Call canWrite()
在 File
.
How can I verify that there is enough room to perform the write?
您不能,因为在您进行计算时,该值可能已因设备上其他应用程序的行为而发生变化。
您可以使用methods on StatFs
来确定可用的space,但我会给自己一个很大的缓冲。
How can I verify that the write was performed successfully?
首先在 FileOutputStream
上调用 getFD().sync()
,在 flush()
之后和 close()
之前,以确保所有字节都写入磁盘并且不会被缓存内核和文件系统实现。对于大多数情况,这就足够了。
也欢迎您重新阅读内容并根据您记忆中的任何内容对其进行验证,以确认该文件似乎包含它应该包含的内容。
在Android中,如果我想将一个文件从一个地方复制到另一个地方:
如何检查我是否拥有正确的清单权限?我知道您在清单中包含了权限,但假设我们不知道我们是否包含它——如果我们缺少权限,我们如何捕获异常?
如何验证我是否具有源文件的读取权限?
如何验证我是否具有目标的写入权限?
如何验证是否有足够的空间来执行写入?
如何验证写入是否成功?
how do we catch the exception if we lack the permission?
这因权限而异。
How can I verify that I have read access for the source file?
Call canRead()
在 File
.
How can I verify that I have write access for the destination?
Call canWrite()
在 File
.
How can I verify that there is enough room to perform the write?
您不能,因为在您进行计算时,该值可能已因设备上其他应用程序的行为而发生变化。
您可以使用methods on StatFs
来确定可用的space,但我会给自己一个很大的缓冲。
How can I verify that the write was performed successfully?
首先在 FileOutputStream
上调用 getFD().sync()
,在 flush()
之后和 close()
之前,以确保所有字节都写入磁盘并且不会被缓存内核和文件系统实现。对于大多数情况,这就足够了。
也欢迎您重新阅读内容并根据您记忆中的任何内容对其进行验证,以确认该文件似乎包含它应该包含的内容。