File.delete 上的 Ruby (Errno::EACCES)

2024-05-13

我试图在使用完一些 XML 文件后删除它们,其中一个文件给了我这个错误:

'delete': Permission denied - monthly-builds.xml (Errno::EACCES)

Ruby 声称该文件受到写保护,但我在尝试删除它之前设置了权限。

这就是我正在尝试做的:

#collect the xml files from the current directory
filenames = Dir.glob("*.xml")

#do stuff to the XML files
finalXML = process_xml_files( filenames )

#clean up directory
filenames.each do |filename|
        File.chmod(777, filename) # Full permissions
        File.delete(filename)
end

有任何想法吗?


This:

File.chmod(777, filename)

不做你认为它做的事。来自精美手册 http://ruby-doc.org/core/classes/File.html#M000010:

Changes 权限位指定文件上的位模式表示为mode_int.

强调我的。文件模式通常以八进制指定,因为它可以很好地将位分为三个 Unix 权限组(所有者、组、其他):

File.chmod(0777, filename)

因此,您实际上并未将文件设置为完全访问权限,而是将权限位设置为 01411,结果如下:

-r----x--t

而不是

-rwxrwxrwx

你所期待的。请注意,您的(十进制)777 权限位图已删除写入权限。

另外,删除文件需要对该文件所在的目录进行写访问(至少在 Unixish 系统上),因此请检查该目录的权限。

最后,您可能想检查返回值File.chmod http://ruby-doc.org/core/classes/File.html#M000010:

[...] 返回已处理的文件数。

仅仅因为您调用并不意味着它会成功。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

File.delete 上的 Ruby (Errno::EACCES) 的相关文章

随机推荐

  • 如何在 ui-sortable 中手动触发“更新”

    我正在使用可排序的 UI 每个项目中都有一个delete按钮 这是删除功能 delete item click function this closest grid 3 b remove initSortable sortable sort
  • SmartyStreets jQuery 元素定位中断

    我的地址表单位于 Twitter 引导选项卡集下方 这些标签具有不同的高度 当用户在选项卡之间切换时 SmartyStreets smarty ui 元素不会更新其绝对定位 相反 表单现在可能在页面上显示更高或更低 并且复选框保留在原来的位
  • 如何使用javascript检查图像url是否为404

    使用案例 当 src 不为空并且 alt 标签不为空时 则显示 src 的图像 然后检查 src 图片 url 不是 404 当 src 为空且 alt 不为空时 显示名字的图像 当 src 和 alt 为空时显示默认图像 HTML img
  • 将 Google 日历同步到我的 Android 应用程序

    我在 Android 中制作了一个 GUI 应用程序 我想与 Google 日历同步 这怎么可能做到呢 Google 为其服务提供了详细记录的 API 您可以在此处找到日历 API http code google com apis cal
  • 查询交叉表视图

    我在 PostgreSQL 中有一个表 如下所示 Item1 Item2 Item3 Item4 Value1 Value2 Value3 Value4 我想要一个查询 该查询将显示如下表 ItemHead ValueHead Item1
  • g++ 4.2.1 未在此范围内声明“hash_map”

    我正在尝试使用 sgi hash map include
  • 批量归一化,是还是否?

    我使用 Tensorflow 1 14 0 和 Keras 2 2 4 以下代码实现了一个简单的神经网络 import numpy as np np random seed 1 import random random seed 2 imp
  • 在VBA中将字符串文本拆分为单独的行

    我的 excel 或 csv 文件 中有 2 个文本框 如下所示 文本框 1 包含 11111 22222 33333 文本框 2 包含 55555 11111 22222 33333 55555 我希望 之间的文本位于 3 个不同的行上
  • 在 Elastic Beanstalk SSH 上运行 Django 命令 -> 缺少环境变量

    所以这对我来说是一个长期存在的问题 我很想解决它 我也认为这会帮助很多其他人 我希望在 Elastic Beanstalk EC2 实例上进行 ssh 操作后运行 Django 命令 例如 python manage py dumpdata
  • 如何在Android中正确找到本机lib路径?

    我正在尝试遵循以下建议https issuetracker google com issues 128554619 comment4 https issuetracker google com issues 128554619 commen
  • iPhone CGContext:用两种不同颜色绘制两条线

    我在 iPhone 应用程序中使用 CGContext 时遇到一些问题 我试图用不同的颜色绘制几条线 但所有线最终总是具有最后使用的颜色 我尝试了几种方法 但并不幸运 我建立了一个小型示例项目来处理这个问题 这是我的代码 我在drawRec
  • 增量SQL查询

    我的应用程序有一组固定的 SQL 查询 这些查询以轮询模式运行 每 10 秒一次 由于数据库的大小 gt 100 GB 和设计 超级规范化 我遇到了性能问题 每当数据库上发生更改查询结果的 CRUD 事件时 是否可以对给定查询进行增量更改
  • Phoenix 中的 web/static 和 priv/static 有什么区别?

    我对长生不老药和凤凰是新手 现在我在凤凰城的静态资产方面遇到了麻烦 我想在我的页面中添加一个js文件 我在我的模板中添加以下代码 js test js gt gt 然后创建一个js文件web static js test js 但是 我收到
  • 应用于整个 HTML 的 BODY 标签的背景颜色[重复]

    这个问题在这里已经有答案了 我对 html 中 body 标签的大小感到困惑 我有一个艰难的代码如下 body padding 0px height 100px background color e5e5e5 为什么背景覆盖整个页面 我认为
  • 向 jQuery 函数 Interval 添加动画

    我的问题是如何向倒计时器添加一些动画 我的意思是每次调用 Function Interval 时都需要添加一些动画 如下所示 youtube 视频链接 https www youtube com watch v A9fnvhcWPRo 第二
  • 根据窗口大小调整 div 及其内部内容的大小

    我已经查找了一百万种技术 但我无法让它发挥作用 我知道还有其他类似的帖子 如果它给任何人带来麻烦 我很抱歉 但我需要针对我的代码的具体说明 因为我很愚蠢 提前非常感谢 我希望 div 容器 contentContactBox 以及其中的所有
  • 使用特定 HTTP 方法链接到页面 (DELETE)

    如何像 Rails 那样链接到页面并让浏览器使用 DELETE 方法调用它 我试过 a href DELETE ME a 但不起作用 我使用 Node js 所以我可以用它来处理 DELETE 方法 你不能 链接只会触发 GET 请求 您可
  • R ifelse 错误地用整数替换文本

    我正在使用 Udacity 课程中的一些数据 链接 Reddit 调查回复 https s3 amazonaws com udacity hosted downloads ud651 reddit csv 我试图通过使用单个单词替代替换任何
  • 无法在 Eclipse 中连接到虚拟机

    想要改进这篇文章吗 提供此问题的详细答案 包括引用和解释为什么你的答案是正确的 不够详细的答案可能会被编辑或删除 当我尝试在 Eclipse 上调试任何项目时 我突然开始遇到这个奇怪的错误 我不记得有什么改变让这个问题突然出现 Launch
  • File.delete 上的 Ruby (Errno::EACCES)

    我试图在使用完一些 XML 文件后删除它们 其中一个文件给了我这个错误 delete Permission denied monthly builds xml Errno EACCES Ruby 声称该文件受到写保护 但我在尝试删除它之前设