android - 只读文件不能在android中使用C的remove()删除

标签 android c file-io

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

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

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

我的问题是,

  1. 为什么我们无法删除只读文件?是因为我们对所有者也有只读访问权限吗?
  2. 对于我正在做的事情有更好的解决方法吗?

最佳答案

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

关于android - 只读文件不能在android中使用C的remove()删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48639946/

相关文章:

android - 在包 'cardElevation' 中找不到属性 'com.facebook.samples.audiencenetwork' 的资源标识符

android - PNG Logo 在 Android 5 (api v22) 的启动画面中显示两次并变形

c - 使用消息结构的 UDP 聊天服务器

无法在C程序中写入文件

java - 我想使用 java 代码在文件中的特定位置 append 一些数据

android - 同一布局中的第二个 float 操作按钮没有波纹

android - Android:BitmapFactory.decodeFile/OpenCV确实返回了无效的位图

c - stdout 必须是文本流吗?

c - C 中的 open() 和 write() 函数

mysql - 将数据加载到Mysql表中