Переименовать каталоги с помощью fileutils в Ruby - PullRequest
1 голос
/ 21 октября 2011

При переименовании набора каталогов я получаю странную ошибку Я успешно вызываю FileUtils для многих папок и подпапок.

Но когда я пробую это в подпапке, я получаю странную ошибку. Непосредственно перед выполнением FileUtils.mv я печатаю src и dest, чтобы убедиться, что они представляют что-то нормально, и вот что я получаю в итоге:

change Folder_From_Archive/Student1/Ex1/
to Folder_From_Archive/Student1/ex1/

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:505:in `rename': Invalid argument - Folder_From_Archive/Student/Ex1/ or Folder_From_Archive/Student/ex1/Ex1 (Errno::EINVAL)
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:505:in `mv'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:1396:in `fu_each_src_dest'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:1410:in `fu_each_src_dest0'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:1394:in `fu_each_src_dest'
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/fileutils.rb:494:in `mv'
from unzip_all.rb:51:in `verify_submissions'
from unzip_all.rb:44:in `each'
from unzip_all.rb:44:in `verify_submissions'
from unzip_all.rb:40:in `each'
from unzip_all.rb:40:in `verify_submissions'
from unzip_all.rb:80

Что забавно, так это то, что у меня есть много папок Student, которые я успешно переименовываю с помощью одной и той же команды.

РЕДАКТИРОВАТЬ: после вопросов. Я пытаюсь переместить путь к папке / Ex1 к пути / ex1 Я хочу переименовать Ex1 в ex1, поэтому перед запуском ex1 не существует.

Вот результат ls для папок, которые я могу переименовать drwxr-хт-х И вот для папки Ex1 я не могу переименовать drwxr -----

Ответы [ 2 ]

2 голосов
/ 21 октября 2011

Трудно быть уверенным, что происходит неправильно, поскольку вы не опубликовали свой код, но сообщение об ошибке ясно показывает, что вы пытаетесь переместить каталог Ex1 в каталог ex1, который не существует. Вам нужно исправить ваш звонок на File.mv.

0 голосов
/ 21 октября 2011

Вы можете проверить с помощью 'ls -ld', каковы права доступа и права собственности на эти папки, и опубликовать их здесь? например вложенная папка и папка, вызывающая ошибку

...