使用C remove()无法在Android中删除只读文件

时间:2018-02-06 09:47:55

标签: android c file-io

我正在为android中的代码编写单元测试。这些自动化单元测试应该在Android上运行。

我的一个测试案例是在通用读取模式下创建文件, -r - r - r - ,然后使用remove()删除它,但remove()是失败。经过调查,我发现失败是因为该文件是只读的。

作为一种解决方法,我使用chmod()显式更改权限,然后将其删除。

我的问题是,

  1. 为什么我们不能删除只读文件?是因为我们也拥有对所有者的只读权限吗?
  2. 我正在做什么有更好的解决方法吗?

1 个答案:

答案 0 :(得分:1)

您需要具有写入权限才能删除文件,因为您更改了删除文件的内容。删除文件时,实际上是在更改此文件的引用计数,存储在文件系统中(例如EXT3,EXT4),您还要更改它的删除时间以及其他一些信息。 要删除文件,您需要使用chmod授予用户写入权限。