Są chwile, kiedy konieczne jest, aby pliki w archiwum ZIP były w określonej kolejności (na przykład obecnie tworzę EPUB , które wymagają, aby pierwszy wpis w ZIP był mimetype
plikiem). Jak mogę to zrobić w systemie Windows?
Obecnie używam 7-Zip jako mojego archiwizatora, ale nie widzę opcji kontrolowania kolejności plików. Czy można to zrobić za pomocą 7-suwaków? Jeśli nie, jakie mam opcje?
Odpowiedzi:
Wersja 7-zip GUI:
mimetype
z pliku EPUBmimetype
w pliku EPUBmimetype
na!mimetype
!mimetype
do pliku EPUB!mimetype
namimetype
wewnątrz pliku EPUB7-zip prosta wersja przeciągnij i upuść:
Przejdź do strony pobierania 7-zip i pobierz
7-Zip Extra: standalone console version, 7z DLL, Plugin for Far Manager
(nie działa ze stabilną wersją 9.20, ale działa dobrze z wersją 9.38 beta i 15.06 beta). Wyciąg7za.exe
. Zapisz kod poniżej jakorepair.bat
plik:Put
7za.exe
arepair.bat
w tym samym katalogu i po prostu przeciągnij plik EPUB narepair.bat
.źródło
Jednym ze sposobów byłoby: Większość archiwizatorów i narzędzi do archiwizacji ma możliwość dołączania lub dodawania dodatkowych elementów do oryginalnego archiwum. Utwórz swoje archiwum z elementami, które chcesz u góry, a następnie dodaj dodatkowe pliki elementów do utworzonego archiwum. Wiem, że działa to we własnych narzędziach ZIP.
wygląda na to, że prawdziwa odpowiedź jest poza mną, tutaj dla C # /programming/5898787/creating-an-epub-file-with-a-zip-library
tutaj dla HTML (przy użyciu 7z)
http://next.blurb.com/2011/02/17/how-to-make-an-ipad-photo-book/
konkretnie ta część
http://idpf.org/epub/30/spec/epub30-ocf.html#physical-container-zip
źródło
mimetype
, a następnie dodawanie innych plików), ale nie powiodło się. Temimetype
dane zajął pierwsze miejsce w pliku, ale tabela plik wydaje się alfabetycznie.7z l filename.zip
wyświetlałem zawartość zamka błyskawicznego i nie wydają się być w żadnej kolejności (nazwa, ścieżka, data, rozmiar ...). Tak więc użycie tego wiersza poleceń może pomóc ustalić prawdziwą kolejność plików w zipie..epub
edytor tekstu i bezpośrednio sprawdzając tabelę plików, więc wygląda na to, że takie podejście po prostu nie działa. Zabiorę młot Pythona do problemu i zobaczę, czy to nie rozwiąże.Utworzenie EPUB wymaga dwuetapowego procesu, po pierwsze dodaj mimetype bez żadnej (!) Kompresji, po drugie dodaj pozostałe pliki / foldery. Korzystając z 7z, możesz wykonać następujące polecenia:
Aby móc użyć symbolu wieloznacznego *, przenieś typ pliku do innego folderu i rozpocznij drugi krok:
Po tym zmień nazwę ZIP na EPUB i znikniesz!
źródło
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
Z mojego doświadczenia wynika, że najprostszą odpowiedzią (dla Windows, 7, 64-bit) jest użycie wbudowanej funkcji Zip w systemie Windows. Użyj „Wyślij do”, aby wysłać typ mimetyczny do nowego skompresowanego folderu, a następnie użyj 7Zip, aby dodać META-INF i OEBPS do nowego zip. To wydaje się zawsze działać, jeśli chodzi o sekwencjonowanie najpierw pliku mimetype. Nie udało mi się wykonać tej operacji wyłącznie z 7-suwakiem. (Dotyczy to ePUBS, ale powinno działać również w przypadku sekwencjonowania również w innych obszarach).
Mam nadzieję, że to pomaga komuś innemu.
źródło
Użycie winrar załatwiło sprawę. Dodałem typ mimetyczny do archiwum zip (nieskompresowany!), A następnie dodałem pozostałe foldery, zwykła kompresja.
To rozwiązanie nie działało dla mnie z 7-zip, ponieważ ciągle zmienia kolejność plików.
źródło
Miałem ten sam problem podczas pracy z plikami EPUB.
W systemie Windows 7 naprawiłem to za pomocą tej dziwnej sztuczki, w której upewniłem się, że posortowałem wszystkie pliki, które zamierzałem zrobić w pliku zip, w taki sposób, aby na wierzchu umieścić plik typu mimetype (zwykle sortowanie według rozmiaru). Następnie upewniłem się, że zaznaczyłem wszystkie pliki od góry do dołu kursorem przed wysłaniem ich do folderu skompresowanego (zip) (takiego jak: https://support.microsoft.com/en-us/help/14200/ windows-compress-uncompress-zip-files ). Potem mogłem zmienić nazwę i typ pliku na dowolny .epub.
Jednak po uaktualnieniu do systemu Windows 10 ta sztuczka już nie działała. Na szczęście znalazłem inny sposób. Najpierw wyślij żądany plik na górze (typ mimetyczny) w pliku zip do folderu skompresowanego (zip). Upewnij się, że jest to tylko ten plik. Następnie biorę inne pliki, które chcę skompresować (w moim przypadku dwa foldery), zaznaczam je kursorem i przeciągam do utworzonego właśnie pliku zip. Windows doda następnie nowe pliki do pliku zip i utrzyma plik, który pierwotnie spakowałeś na wierzchu.
źródło