मैं एक ज़िप संग्रह में फ़ाइलों के क्रम को कैसे नियंत्रित कर सकता हूं?


14

ऐसे समय होते हैं जब ज़िप संग्रह में फ़ाइलों के लिए एक विशिष्ट क्रम में होना आवश्यक होता है (उदाहरण के लिए, मैं वर्तमान में EPUB बना रहा हूं , जिसके लिए आवश्यक है कि ज़िप में पहली प्रविष्टि mimetypeफ़ाइल हो)। मैं विंडोज पर यह कैसे कर सकता हूं?

मैं वर्तमान में 7-ज़िप को अपने संग्रहकर्ता के रूप में उपयोग कर रहा हूं , लेकिन मुझे फ़ाइल ऑर्डर को नियंत्रित करने के लिए कोई विकल्प नहीं दिखता है। यह 7-ज़िप के साथ किया जा सकता है? यदि नहीं, तो मेरे पास क्या विकल्प हैं?


3
उन्हें इस क्रम में जोड़ना कि उन्हें ऐसा करने की आवश्यकता हो। पहले mimetype फ़ाइल को ज़िप करने का प्रयास करें, फिर दूसरी फ़ाइलों को दूसरे ऑपरेशन के रूप में ज़िप में जोड़ें।
पॉल

1
@Paul - हैरानी की बात है, यह काम नहीं किया। : - /
बेन ब्लैंक

क्या यह LIFO हो सकता है? क्या आप पिछले mimetype को जोड़ने की कोशिश कर सकते हैं? आप एक epub पाठक के खिलाफ सही परीक्षण कर रहे हैं, बजाय सिर्फ unzipping के?
पॉल

3
ऐसा एप्लिकेशन जिसके लिए सामग्री को एक विशिष्ट क्रम में होना चाहिए, टूट गया है।
psusi

3
शीश के लेखकों ने पीछे हटने की बात कही और एक सुराग चार से पीटा।
Psusi

जवाबों:


5

7-ज़िप GUI संस्करण:

  1. mimetypeEPUB फ़ाइल से निकालें
  2. mimetypeEPUB फ़ाइल में हटाएं
  3. का नाम बदल mimetypeदिया!mimetype
  4. !mimetypeEPUB फ़ाइल में जोड़ें
  5. नाम बदलने !mimetypeके लिए mimetypeअंदर EPUB फ़ाइल

7-ज़िप सरल खींचें और ड्रॉप संस्करण:

जाओ करने के लिए 7-ज़िप डाउनलोड पृष्ठ और डाउनलोड 7-Zip Extra: standalone console version, 7z DLL, Plugin for Far Manager(स्थिर 9.20 के साथ काम नहीं है, लेकिन 9.38 बीटा और 15.06 बीटा के साथ अच्छी तरह से काम करता है)। अर्क 7za.exerepair.batफ़ाइल के रूप में नीचे कोड सहेजें :

7za x %1 mimetype -y
7za d %1 mimetype
move /y mimetype !mimetype
7za a %1 !mimetype
del /f !mimetype
7za rn %1 !mimetype mimetype

रखो 7za.exeऔर repair.batएक ही निर्देशिका में और बस अपने EPUB फ़ाइल को खींचें repair.bat


3

एक तरीका यह होगा: अधिकांश अभिलेखागार और संग्रह उपकरण में मूल संग्रह में अतिरिक्त फ़ाइल आइटम जोड़ने या जोड़ने की क्षमता है। शीर्ष पर अपने इच्छित आइटम के साथ अपना संग्रह बनाएं, फिर उस बनाए गए संग्रह में अतिरिक्त फ़ाइल आइटम जोड़ें। मुझे पता है कि यह विंडोज़ के ज़िप टूल्स में काम करता है।

ऐसा लगता है कि वास्तविक उत्तर मेरे से परे है, यहाँ C # /programming/5898787/creating-an-epub-file-with-a-zip-library

HTML के लिए यहां (7z का उपयोग करके)
http://next.blurb.com/2011/02/17/how-to-make-an-ipad-photo-book/

विशिष्ट रूप से यह हिस्सा

2. नमूना-फोटो-पुस्तक फ़ोल्डर का चयन करें, और फ़ाइल संग्रह को पहले (खाली) संग्रह में कॉपी करें।
3.अब, अन्य फ़ोल्डरों (META-INF और OEBPS) को आर्काइव में कॉपी करें।


http://idpf.org/epub/30/spec/epub30-ocf.html#physical-container-zip

Mimetype फ़ाइल की सामग्री में कोई भी अग्रणी पैडिंग या व्हाट्सएप नहीं होना चाहिए, यूनिकोड हस्ताक्षर (या बाइट ऑर्डर मार्क) के साथ शुरू नहीं होना चाहिए, और MIME टाइप स्ट्रिंग का मामला बिल्कुल ऊपर प्रस्तुत किया जाना चाहिए। Mimetype फ़ाइल अतिरिक्त रूप से न तो संपीड़ित होनी चाहिए और न ही एन्क्रिप्ट की जानी चाहिए, और इसके ZIP हेडर में एक अतिरिक्त फ़ील्ड नहीं होना चाहिए।


1
मैंने इसे 7-ज़िप में आज़माया ( केवल एक संग्रह बनाकर mimetype, फिर अन्य फ़ाइलों को जोड़कर), लेकिन कोई सफलता नहीं मिली। mimetype डेटा फ़ाइल में प्रथम आया था, लेकिन फाइल तालिका alphabetized जा रहा है।
बेन ब्लैंक

2
@BenBlank सुनिश्चित करें कि आप जिप क्लाइंट का उपयोग करके इसे चेक नहीं कर रहे हैं - वे एक तरह से फिर से ऑर्डर करेंगे जो मनुष्यों पर सूट करते हैं, जरूरी नहीं कि एक एपब रीडर क्या देखेगा।
पॉल

संभवतः समस्या यह है कि 7-ज़िप को अल्फा ऑर्डर में निर्देशिका को बनाए रखना पसंद है और फिर (जरूरी) जब यह ज़िप फ़ाइल को बंद कर देता है तो इसे फिर से लिखता है। कोई भी, सिद्धांत रूप में, ज़िप फ़ाइल को हेक्स संपादक या किसी प्रकार के एड-हॉक टूल के साथ संपादित करके और निर्देशिका को फिर से व्यवस्थित करके ठीक कर सकता है - यह विशेष रूप से जटिल नहीं है। संपादन एक डमी फ़ाइल को शामिल करके सरल किया जाएगा जो हमेशा पहले की तरह होती है। लेकिन फिर, निश्चित रूप से, उपरोक्त लिंक में तकनीक को भी काम करना चाहिए।
डैनियल आर हिक्स

मैं 7z l filename.zipएक जिप की सामग्री को सूचीबद्ध करता था, और वे किसी भी क्रम (नाम, पथ, तिथि, आकार ...) में प्रकट नहीं होते थे। तो, इस कमांड लाइन का उपयोग करने से ज़िप में फाइलों का सही क्रम निर्धारित करने में मदद मिल सकती है।
स्कॉट McClenning

@Paul - मैं .epubएक टेक्स्ट एडिटर को खोलकर सीधे फाइल टेबल की जांच कर रहा हूं , इसलिए ऐसा लग रहा है कि यह तरीका मेरे लिए काम नहीं कर रहा है। मैं पायथन हथौड़ा को समस्या पर ले जा रहा हूं और देखता हूं कि क्या यह ठीक नहीं है।
बेन ब्लैंक

2

ईपीयूबी बनाने के लिए दो चरणों की प्रक्रिया की आवश्यकता होती है, पहले बिना किसी (() संपीड़न के mimetype जोड़ें, दूसरा अन्य फ़ाइलों / फ़ोल्डरों को जोड़ें। तो 7z का उपयोग करके आप निम्नलिखित कमांड ले सकते हैं:

7z a -mx=0 dummy.zip mimetype

वाइल्डकार्ड का उपयोग करने में सक्षम होने के लिए * आपको फ़ाइल को दूसरे फ़ोल्डर में ले जाना चाहिए और दूसरा चरण शुरू करना चाहिए:

7z a -r dummy.zip *

उसके बाद EPUB में जिप का नाम बदलें और आप चले गए!


मैंने अभी-अभी यह कोशिश की है और मुझे अभी भी यह त्रुटि मिली है:Epubcheck Version 3.0.1 ERROR: C:/MYSELF/Books/1984---George-Orwell/1984---George-Orwell.epub: Mimetype entry missing or not the first in archive
टॉम ज़ातो - पुनः

1

मेरे अनुभव में, सबसे सरल उत्तर (विंडोज, 7, 64-बिट के लिए) विंडो के अंतर्निहित ज़िप कार्यक्षमता का उपयोग करना है। नए ज़िपित फ़ोल्डर में mimetype भेजने के लिए "Send To" का उपयोग करें, फिर नए ज़िप में META-INF और OEBPS को जोड़ने के लिए 7Zip का उपयोग करें। ऐसा लगता है कि हमेशा mimetype फ़ाइल को पहले क्रमबद्ध करने के संदर्भ में काम करें। मुझे केवल 7-ज़िप के साथ इस ऑपरेशन को करने में सफलता नहीं मिली है। (यह ePUBS के लिए है, लेकिन यह अन्य क्षेत्रों में भी, अनुक्रमण के लिए काम करना चाहिए।)

मैं उम्मीद करता हूं कि इससे किसी की मदद होगी।


0

विनर का उपयोग करते हुए मेरे लिए चाल चली। मैंने जिप-संग्रह (असम्पीडित!) के लिए mimetype को जोड़ा, फिर बाद में शेष फ़ोल्डर्स, नियमित संपीड़न को जोड़ा।

यह समाधान मेरे लिए 7-ज़िप के साथ काम नहीं करता था, क्योंकि यह फाइलों को फिर से व्यवस्थित करता है।


0

EPUB-files के साथ काम करते समय मुझे यही समस्या थी।

विंडोज 7 पर मैंने इसे इस अजीब चाल के साथ तय किया जहां मैंने यह सुनिश्चित किया कि मैं उन सभी फाइलों को सॉर्ट करूं जो मैं एक ज़िप में इस तरह से बनाने जा रहा था जिससे फ़ाइल को शीर्ष पर बनाया गया था (उन्हें आकार द्वारा आमतौर पर छांटना)। फिर मैंने यह सुनिश्चित किया कि मैंने अपने कर्सर के साथ ऊपर से नीचे तक सभी फ़ाइलों को एक संपीड़ित (ज़िप) फ़ोल्डर में भेजने से पहले चिह्नित किया (इस तरह: https://support.microsoft.com/en-us/help/14200/ विंडोज़-कंप्रेस-अनकंप्रेस-ज़िप-फाइल्स )। उसके बाद मैं नाम और फ़ाइल नाम को जो भी .epub में बदल सकता था ।

हालाँकि, मैंने विंडोज 10 में अपग्रेड करने के बाद यह चाल काम नहीं की। सौभाग्य से मुझे एक और रास्ता मिल गया है। सबसे पहले आप जिस फाइल को ऊपर (mimetype) चाहते हैं उसे जिप फाइल में एक संपीड़ित (जिप) फोल्डर में भेजें। सुनिश्चित करें कि यह केवल वह फ़ाइल है। मैं जिन अन्य फ़ाइलों को ज़िप करना चाहता हूं, उन्हें लेने के लिए (मेरे मामले में दो फ़ोल्डर) उन्हें कर्सर के साथ चिह्नित करें और उन्हें ज़िप फ़ाइल में खींचें जो मैंने अभी बनाया है। Windows तब ज़िप फ़ाइल में नई फ़ाइलें जोड़ देगा, और आपके द्वारा मूल रूप से ज़िप की गई फ़ाइल को शीर्ष पर रखेगा।


1
क्या आप स्पष्ट रूप से बता सकते हैं कि लेखक के प्रश्न का उत्तर क्या है? विंडोज 10 में अपग्रेड करना वास्तव में इस सवाल का जवाब नहीं है। आपको इस बात पर ध्यान केंद्रित करना चाहिए कि आपने इसे कैसे तय किया, विवरण प्रदान करें, आपके कथन व्यापक हैं। यदि मैं मूल समस्या का पुनरुत्पादन कर रहा था, तो मैं आपके उत्तर के साथ इसे हल करने में असमर्थ होगा।
रामहाउंड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.