Как я могу определить, доступен ли каталог для записи в Ruby - PullRequest
7 голосов
/ 26 января 2012

Я использую Ruby и мне нужно определить, доступен ли для записи каталог, прежде чем пытаться создавать новые файлы.

Я пробовал следующий код, который корректно возвращает true / false в зависимости от того, является ли @path каталогом.,Тем не менее, он по-прежнему возвращает истину, когда нет разрешения на запись в папку @path.

  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.

Ответы [ 2 ]

3 голосов
/ 26 января 2012

Для Windows вам нужны методы File.attributes или File.readonly? из win32-файла gem.

И вам следует подумать о том, чтобы внести свой вклад в Дэниела Бергера, поскольку без его win32-гемов Ruby on Windows был бы гораздо более враждебным местом.

0 голосов
/ 26 января 2012

Вы можете сделать это, используя world_writable?(filename)

http://ruby -doc.org / ядро-1.9.3 / file.html # способ-с-world_writable-3F

...