ant - कैसे मैं चींटी के साथ एक ज़िप फ़ाइल के शीर्ष स्तर फ़ोल्डर को समतल कर सकता हूँ?




zip unzip mapper (2)

वास्तव में एक अलग नक्शा है जो विशेष रूप से इस बुलाया कटडीआर्समैपर के लिए बनाया गया है इसे एक प्रयास करें:

<unzip dest="${dest.path}">
    <fileset dir="${source.path}">
        <include name="**/zipfile*.*.zip" />
    </fileset>
    <cutdirsmapper dirs="1" />
</unzip>

ज़िप फ़ाइलों की एक बहुत जड़ फ़ोल्डर है, मैं कैसे ज़िप फ़ाइल को खोलने और रूट फ़ोल्डर से छुटकारा?

मुझे पता है कि globmapper :

<unzip dest="${dest.path}">
    <fileset dir="${source.path}">
        <include name="**/zipfile*.*.zip" />
    </fileset>
    <mapper>
        <globmapper from="rootFolder/*" to="*" />
    </mapper>
</unzip>

लेकिन क्या अगर मुझे रूट फ़ोल्डर का नाम नहीं पता? वाइल्डकार्ड जैसे काम नहीं कर रहे हैं

<globmapper from="root*Folder/*" to="*" />

क्या रूट कार्ड के बिना वाइल्डकार्ड या मैपर / फ़ंक्शन का उपयोग करने का कोई तरीका है?


मुझे इसी तरह की समस्या थी जिसे मैंने रूबीज मणि और स्ट्रिंगियो ऑब्जेक्ट का उपयोग करके हल किया। यह पता चला है कि रूबीज़ एक ऐसी विधि प्रदान करता है जो एक स्ट्रिंग ऑब्जेक्ट देता है: ZipOutputStream.write_buffer

आप put_next_entry फ़ाइल संरचना बना सकते हैं जैसे आप put_next_entry का उपयोग put_next_entry और लिखते हैं और एक बार जब आप समाप्त कर लेते हैं तो आप स्ट्रिंग को रिवाइंड कर सकते हैं और द्विध्रुवीय डेटा का उपयोग करके पढ़ सकते हैं।

निम्नलिखित सरल उदाहरण देखें (रूबीज़ 0.9.X के लिए काम करता है)

require 'zip/zip'
stringio = Zip::OutputStream.write_buffer do |zio|
  zio.put_next_entry("test.txt")
  zio.write "Hello world!"
end
stringio.rewind
binary_data = stringio.sysread

जुरबी 1.6.5.1 (रूबी-1.9.2-p136) (2011-12-27 1bf37c2) (जावा हॉटस्पॉट (TM) 64-बिट सर्वर VM 1.6.0_29) [Windows Server 2008-amd64-java]) पर परीक्षण किया गया

निम्न उदाहरण रूबीज़> = 1.0.0 के लिए काम करता है

require 'rubygems'    
require 'zip'
stringio = Zip::OutputStream.write_buffer do |zio|
  zio.put_next_entry("test.txt")
  zio.write "Hello world!"
end
binary_data = stringio.string

OpenJDK 64-बिट सर्वर VM 1.7.0_79-b14 + jit [linux-amd64] और रूबीपिप रत्न 1.1.7 पर jruby 1.7.22 (1.9.3p551) 2015-08-20 c28f492 पर परीक्षण किया गया।