7

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

我尝试了以下代码,它根据@path 是否为目录正确返回真/假。但是,当 @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。

4

2 回答 2

3

对于 Windows,您需要win32 文件gem中的File.attributesorFile.readonly?方法。

你应该考虑为 Daniel Berger 做贡献,因为没有他的 win32-gems,Windows 上的 Ruby 将是一个更加充满敌意的地方。

于 2012-01-26T11:41:13.973 回答
0

您可能可以通过使用来做到这一点world_writable?(filename)

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

于 2012-01-26T10:23:58.760 回答