我从git下载旧代码(zip)文件。现在我想将文件夹位置称为加载路径,以便我可以使用代码来拆分zip,但我可以看到Split错误即将到来。我试过的代码是
$LOAD_PATH.unshift('c:/rubyzip/lib/zip')
require 'zip/zip'
part_zip_count = Zip::ZipFile.split("C:\junk\AWS Tools.zip", 10240, false)
puts "Zip file splitted in #{part_zip_count} parts"
使用$ LOAD_PATH.unshift是否正确?有帮助吗?如何将文件夹的位置称为加载路径?
答案 0 :(得分:0)
问题似乎与脚本的require
部分无关。
有几种不同的方法可以将文件夹添加到$LOAD_PATH
,而.unshift
就是其中之一。 $LOAD_PATH
是一个数组,因此$LOAD_PATH << 'C:/Folder/'
也可以使用。
您提到您收到有关split
的错误消息。这告诉您脚本使其超过require
部分。所以,你的问题出现在脚本的其他方面。
在检查Zip::Zipfile
的{{3}}后,您会注意到该类没有方法.split
。我建议阅读文档,了解满足脚本需求的可能方法。或许documentation正是您所寻找的。
一旦确定了正确的方法和重构,您将遇到另一个问题,即您希望与之交互的zip文件的路径。 Windows使用\(反斜杠)作为路径分隔符。但是,Ruby将其用作转义字符。
puts "First line\nNext line"
#=>First Line
#=>Next Line
这意味着Ruby将试图弄清楚'C:\ junk'中的\j
是什么意思。您可以通过两种方式解决此问题。
"C:/junk/AWS tools.zip"
。 File.join
构建路径。 File.join("C:", "junk", "AWS tools.zip")
。这样做意味着您不必担心Ruby认为路径分隔符是什么以及它不具备什么。它会为你担心。