【问题标题】:How to change the mode from read-write to read-only in a File-resource object in Ruby?如何在 Ruby 的文件资源对象中将模式从读写更改为只读?
【发布时间】:2011-09-21 21:58:28
【问题描述】:

我的代码需要创建一个文件,写入文件,然后将文件对象更改为只读模式。

我现在做的事情,看起来有点丑:我用“wb”模式打开文件,写入文件,关闭它,然后用“rb”模式重新打开:

open(@cached_file_name, 'wb') { |file| file.write("foo") }    
@cached_file = open(@cached_file_name, 'rb')

是否可以在不打开和关闭文件的情况下将文件从“wb”更改为“rb”?喜欢:

@cached_file = open(@cached_file_name, 'wb')
@cached_file.write("foo")
@cached_file.mode= 'r'

不过我不知道有这样的mode= 方法。

【问题讨论】:

    标签: ruby file-io file-permissions


    【解决方案1】:

    不,我不知道有什么方法可以做到这一点,我认为这源于 Linux 中的 open 系统调用,它不能做到这一点。

    IO.newRubyDoc 声明:

    原始IO的模式为只读时,不能改成可写模式。同样,不能将模式从只写更改为可读。如果针对这种错误的更改,实际发生错误的时间会因平台而异。

    但我注意到,这并没有明确说明您可以或不可以在读/写模式下做什么...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-10
      • 1970-01-01
      • 2011-10-06
      • 2010-09-15
      • 1970-01-01
      相关资源
      最近更新 更多