0
我有一個具有以下內容的tar文件:提取tar文件:errno的:: ENAMETOOLONG:文件名過長@ rb_sysopen
/results/02-12-2017_13:17:41/
├── events.log
├── network_hosts.gnmap
├── network_hosts.nmap
├── network_hosts.xml
├── report.xml
└── results.xml
在試圖提取與Nokogiri
我解析文件m到處以下錯誤rails console
:
Errno::ENAMETOOLONG: File name too long @ rb_sysopen
這是到目前爲止我的代碼:
test = Test.find(test_id)
gzip = Zlib::GzipReader.open(test.data.path)
entries = {}
tar_extract = Gem::Package::TarReader.new(gzip)
tar_extract.rewind
tar_extract.each do |entry|
entries[File.basename(entry.full_name)] = entry.read
end
host_file = File.open(entries["network_hosts.xml"]) { |f| Nokogiri::XML(f) }
到最後,我的代碼似乎打開host_file
因爲它輸出的內容到控制檯,但它不保存任何東西到host_file
因爲該錯誤發生的事情:
Errno::ENAMETOOLONG: File name too long @ rb_sysopen - <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE nmaprun>
<?xml-stylesheet href="file:///usr/local/bin/../share/nmap/nmap.xsl" type="text/xsl"?>
<nmaprun scanner="nmap" args="nmap -sn -oA /results/02-10-2017_18:17:34/network_hosts 10.10.10.1 10.10.10.2" start="1486768654" startstr="Fri Feb 10 18:17:34 2017" version="7.12" xmloutputversion="1.04">
..................
</nmaprun>
from (pry):102:in `initialize'
我在做什麼錯在這裏?