我如何检测一个目录是否可以在Ruby中写入

我正在使用Ruby,并且需要在尝试创建新文件之前检测目录是否可写入。

我已经尝试了下面的代码,根据@path是否是一个目录,它正确地返回true / false。 但是,如果没有对@path文件夹的写入权限,它仍会返回true。

  if File.directory?(@path) && File.writable?(@path)
    #is a writeable directory
    true
  else
    #is not a writeable directory
    false
  end

我查看了File和Dir类的帮助,但无法看到任何允许我检查目录写入权限的方法。 有没有办法?

我只需要它在Windows上工作,使用Ruby 1.9.3。


对于Windows,您需要File.attributesFile.readonly? 来自win32文件gem的方法。

你应该考虑为丹尼尔伯杰作出贡献,因为没有他的win32-宝石在Windows上的Ruby将是一个更加敌对的地方。


你可以通过使用world_writable?(filename)来完成它world_writable?(filename)

http://ruby-doc.org/core-1.9.3/File.html#method-c-world_writable-3F

链接地址: http://www.djcxy.com/p/10359.html

上一篇: How can I detect whether a directory is writeable in Ruby

下一篇: video post on timeline not playing inline