ZIP arşivindeki dosyaların sırasını nasıl kontrol edebilirim?


14

ZIP arşivindeki dosyaların belirli bir sırada olmalarının gerekli olduğu zamanlar vardır (örneğin, şu anda ZIP'deki ilk girişin mimetypedosya olmasını gerektiren EPUB'lar oluşturuyorum ). Bunu Windows'ta nasıl yapabilirim?

Şu anda arşivleyicim olarak 7-Zip kullanıyorum , ancak dosya sırasını kontrol etmek için bir seçenek göremiyorum. Bu 7-zip ile yapılabilir mi? Değilse, hangi seçeneklere sahibim?


3
Bunları olması gereken sırayla eklemek bunu yapmalıdır. Önce mimetype dosyasını sıkıştırmayı, ardından ikinci bir işlem olarak diğer dosyaları zip'e eklemeyi deneyin.
Paul

1
@Paul - Şaşırtıcı bir şekilde, bu işe yaramadı. : - /
Ben Blank

LIFO belki mi? En son mime türü eklemeyi deneyebilir misin? Bir epub okuyucuya karşı test ediyorsun, sadece unzip etmek yerine?
Paul

3
İçeriğin belirli bir sırada olmasını gerektiren bir uygulama bozuldu.
psusi

3
Sheesh, özelliğin yazarlarının geri alınması ve dört bir ipucu ile dövülmesi gerekiyor.
psusi

Yanıtlar:


5

7-zip GUI sürümü:

  1. ayıklamak mimetypeEPUB dosyasından
  2. mimetypeEPUB dosyasında sil
  3. adlandırmak mimetypeiçin!mimetype
  4. !mimetypeEPUB dosyasına ekle
  5. adlandırmak !mimetypeiçin mimetypeiç EPUB dosyası

7-zip basit sürükle ve bırak versiyonu:

Git için 7-zip indirme sayfası ve indirme 7-Zip Extra: standalone console version, 7z DLL, Plugin for Far Manager(stable 9.20 ile değil iş, ama 9.38 beta ve 15.06 beta ile iyi çalışır yapar). Özü 7za.exe. Aşağıdaki kodu repair.batdosya olarak kaydedin :

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

Aynı dizine koyun 7za.exeve repair.batEPUB dosyanızı sürükleyin repair.bat.


3

Bunun bir yolu şu olabilir: Çoğu arşivleyici ve arşiv aracı orijinal arşive ek dosya öğeleri ekleme veya ekleme yeteneğine sahiptir. Arşivinizi en üstte istediğiniz öğelerle oluşturun, ardından bu oluşturulan arşive ek dosya öğeleri ekleyin. Bunun Windows kendi ZIP araçlarında çalıştığını biliyorum.

gerçek cevap benden öte gibi görünüyor, burada C # /programming/5898787/creating-an-epub-file-with-a-zip-library

HTML için burada (7z kullanarak)
http://next.blurb.com/2011/02/17/how-to-make-an-ipad-photo-book/

özellikle bu bölüm

2. sample-photo-book klasörünü açın ve mimetype dosyasını önce (boş) arşive kopyalayın.
Şimdi, diğer klasörleri (META-INF ve OEBPS) arşive kopyalayın.


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

Mime türü dosyasının içeriği önde gelen dolgu veya boşluk içermemeli, Unicode imzası (veya Bayt Sırası İşareti) ile başlamamalı ve MIME türü dizginin durumu tam olarak yukarıda belirtildiği gibi olmalıdır. Mimetype dosyası ayrıca sıkıştırılmamalı veya şifrelenmemeli ve ZIP başlığında fazladan bir alan olmamalıdır.


1
Ben 7-zip ( sadece bir arşiv oluşturma mimetype, daha sonra diğer dosyaları ekleyerek) bir deneyin verdi , ancak başarılı olmadı. mimetype Veri dosyasındaki ilk geldi, ancak dosya tablosu alfabetik gibi görünüyor.
Ben Blank

2
@BenBlank Bir zip istemcisi kullanarak bunu kontrol etmediğinizden emin olun - epub okuyucunun göreceği şekilde değil, insanlara uygun bir şekilde yeniden sipariş vereceklerdir.
Paul

Muhtemelen sorun, 7-Zip'in dizini alfa düzeninde tutmayı sevmesi ve zip dosyasını kapattığında (mutlaka) yeniden yazmasıdır. Teorik olarak, zip dosyasını bir hex editörü veya bir tür geçici araçla düzenleyerek ve dizini yeniden düzenleyerek bunu düzeltebiliriz - özellikle karmaşık değildir. Her zaman önce sıralanan bir kukla dosya ekleyerek düzenleme basitleştirilebilir. Ama sonra, elbette, yukarıdaki bağlantıdaki teknik de çalışmalıdır.
Daniel R Hicks

Ben kullanılan 7z l filename.zipbir zip içeriğini listelemek için ve onlar (... isim, yolun, tarih, boyut) herhangi bir sipariş olmak görünmüyor. Bu nedenle, bu komut satırını kullanmak zip dosyasındaki dosyaların gerçek sırasını belirlemeye yardımcı olabilir.
Scott McClenning

@Paul - .epubBir metin düzenleyicide açıp dosya tablosunu doğrudan inceleyerek kontrol ediyorum , bu yüzden bu yaklaşım benim için çalışmıyor gibi görünüyor. Python çekiçini soruna götüreceğim ve düzeltip düzeltmediğini göreceğim.
Ben Blank

2

EPUB oluşturmak iki adımlı bir işlem gerektirir, önce herhangi bir (!) Sıkıştırma olmadan mimetype ekleyin, ikinci olarak diğer dosyaları / klasörleri ekleyin. Yani 7z kullanarak aşağıdaki komutları alabilirsiniz:

7z a -mx=0 dummy.zip mimetype

Joker karakteri * kullanabilmek için mimetype dosyasını başka bir klasöre taşımalı ve ikinci adımı başlatmalısınız:

7z a -r dummy.zip *

Bundan sonra ZIP'i EPUB olarak yeniden adlandırın ve gittiniz!


Ben sadece denedim ve hala bu hatayı alıyorum: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
Tomáš Zato - Monica

1

Deneyimlerime göre, en basit cevap (Windows, 7, 64 bit için), Window'un yerleşik Zip işlevini kullanmaktır. Mime türünü yeni bir sıkıştırılmış klasöre göndermek için "Gönder" i kullanın, ardından META-INF ve OEBPS'yi yeni zip'e eklemek için 7Zip kullanın. Bu her zaman önce mimetype dosyasını sıralama açısından işe yarıyor gibi görünüyor. Bu işlemi sadece 7-zip ile yapmayı başaramadım. (Bu ePUBS içindir, ancak sıralama için diğer alanlarda da çalışmalıdır.)

Umarım bunun bir başkasına yardımı olur.


0

Winrar kullanmak benim için hile yaptı. Mime türünü bir zip arşivine (sıkıştırılmamış!) Ekledim, daha sonra kalan klasörleri düzenli sıkıştırma ekledim.

Dosyaları yeniden sıralamaya devam ettiğinden, bu çözüm benim için 7-zip ile çalışmadı.


0

EPUB dosyalarıyla çalışırken de aynı sorunu yaşadım.

Windows 7'de bu garip hile ile düzelttim, burada bir zip'e yapacağım tüm dosyaları üstte dosyayı mimetype (genellikle boyuta göre sıralama) yapan bir şekilde sıraladığımdan emin oldum. Sonra sıkıştırılmış (zip) bir klasöre göndermeden önce tüm dosyaları imlecimle yukarıdan aşağıya işaretlediğimden emin oldum (şu şekilde: https://support.microsoft.com/tr-tr/help/14200/ windows-sıkıştır-sıkıştır-zip dosyaları ). Bundan sonra adını ve filetype değişebilir ne olursa olsun .epub.

Ancak, Windows 10'a yükselttikten sonra bu hile artık işe yaramadı. Neyse ki başka bir yol buldum. Önce zip dosyasının üstündeki (mimetype) istediğiniz dosyayı sıkıştırılmış (zip) bir klasöre gönderirsiniz. Sadece bu dosya olduğundan emin olun. Ben sıkıştırmak istiyorum diğer dosyaları almak (benim durumumda iki klasör) onları imleç ile işaretlemek ve ben az önce oluşturulan zip dosyasına sürükleyin. Windows daha sonra yeni dosyaları zip dosyasına ekler ve orijinal olarak sıkıştırdığınız dosyayı en üstte tutar.


1
Yazarın sorusunun cevabının ne olduğunu açıkça belirtebilir misiniz? Windows 10'a yükseltme gerçekten bu sorunun cevabı değil. Nasıl düzelttiğinize odaklanmalı, ayrıntılar sunmalı, ifadeleriniz genişlemeli. Orijinal problemi yeniden üretseydim, cevabınızla çözemezdim.
Ramhound
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.