У меня есть сценарий, который сделать следующее (моя проблема в шаге 5):«FileUtils.cp» не работает правильно -ruby
- Перейти рекурсивно через некоторые каталоги, анализировать XML-файлы и сохранять результаты в массив
- Создать новый каталог «new_directory» в каждом из каталогов, где XML файлы помещаются
- Сделайте то же самое, как и в 2), но создавать текстовые файлы «temp.txt»
Откройте temp.txt и записать в него результаты синтаксического анализа. Строки, написанные на «temp.txt» являются пути к исходным файлам, как следующее:
../../Path/to/source/source_a.c ../../Path/to/othersource/source_b.c
- И на последнем этапе я пытаюсь скопировать эти исходные файлы из temp.txt в новый каталог «new_directory»
код выглядит следующим образом:
#######--STEP 1)
xml_files = Dir['TESTS_*/**/*.xml']
xml_files.each do |file_name|
##parsing logic is here.... I didn't show it---
$my_array = []
#######--STEP 2)
xml_directory = Dir['TESTS_*/*/']
xml_directory.each do |folder|
FileUtils.mkdir_p(File.join(folder, 'new_Directory'))
end
#######--STEP 3)
tmp_file = File.expand_path(File.dirname(file_name)) + "/temp.txt"
#######--STEP 4)
File.open(tmp_file, 'w') {|f| f.write $my_array.join("\n")}
#######--STEP 5)
tmp_file.each_line do |file_name |
FileUtils.cp(file_name, 'new_Directory')
end
end
Все сделано хорошо, но исходные файлы из файла «temp.txt» не копируются. Ошибок нет. Возможно, проблема на шаге 3), создав файл temp.txt? Такой способ создания файлов и чем писать для них я делал в других сценариях и worked.When я печатаю «р tmp_file» Я получаю это:
"C:/Project/TESTS_A/myTestsA/temp.txt"
"C:/Project/TESTS_B/myTestsB/temp.txt"
Любая идея, что происходит не так?
Нельзя публиковать это как еще один ответ. – mudasobwa