Как создать zip-файл, совместимый с Windows в соответствии с Linux

Я должен сделать zip-файл доступным для всех моих посетителей пользователей Windows, таким образом, я наивно произвел zip-файл с командой zip Unix (давайте назовем ее madeinlinux.zip).

Это открывается успешно WinRar или Winzip, но те из моих пользователей, которые используют стандартный zip-файл Windows, обрабатывающий отказ опыта при попытке разархивировать его. (Windows XP)

Я сжал те же данные с помощью Windows встроенная zip mecanism, и с точки зрения Linux, я не вижу различия в типе файла:

$ file madeinlinux.zip :  Zip archive data, at least v2.0 to extract
$ file madeinwindows.zip : Zip archive data, at least v2.0 to extract

Они, должно быть что-то характерное для Windows совместимый zip-файл.

Кто-либо знает что?

49
задан 26.11.2011, 21:18

4 ответа

Только вещь, которая выглядит релевантной, является этим

-k - Attempt  to  convert  the  names  and paths to conform to MSDOS, store only the MSDOS attribute (just the user write attribute from UNIX), and mark the entry as made under
MSDOS (even though it was not); for compatibility with PKUNZIP under MSDOS which cannot handle certain names such as those with two dots.

но действительно считайте "zip человека" в Вашей системе прежде, чем идти куда-либо еще...

8
ответ дан 07.12.2019, 08:30
  • 1
    ответа Привет. Спасибо за предложение, но эту-k опцию забирает меня вовремя немного слишком много. Это преобразовывает все имя файла в 8 символьных/нет версий :( –  10.07.2009, 14:41
  • 2
    случая Да, я помню те дни. Но это помогало файлу читать встроенной программой Zip в Windows? –  10.07.2009, 16:43
  • 3
    Не знать. Эта проблема имени файла остановила меня попытка –  10.07.2009, 18:55
  • 4
    Мое предположение - то, что это - сжатие, как MSalters говорит..., что –  10.07.2009, 22:20

7zip инструмент сжатия с открытым исходным кодом, который работает над Linux, FreeBSD, Mac OS X, BeOS, DOS, Amiga и Windows.

Я настоятельно рекомендовал бы его на основе версии для Windows.

Это поддерживает

упаковка / распаковка: 7z, ZIP, GZIP, BZIP2 и TAR

Распаковка только: ARJ, CAB, CHM, CPIO, DEB, DMG, HFS, ISO, LZH, LZMA, MSI, NSIS, RAR, об/мин, UDF, WIM, XAR и Z.

11
ответ дан 07.12.2019, 08:30

Вот сценарий Python, который я использую для архивирования некоторых файлов. Это было протестировано на человечности и Vista. Zip, сгенерированная на Ubuntu, открывается застежкой-молнией Vista.

Я думаю, что у меня была подобная проблема в прошлом, и это было, потому что формат zip не был ZIP_DEFLATED. Я не уверен. Я проверю это.

Я надеюсь, что это помогает

import zipfile
import glob, os, sys

class ZipArchive:

    def zip_it(self, dirName, files):
        dirNamePrefix = dirName+"/*"
        for filename in glob.glob(dirNamePrefix):
            if os.path.isfile(filename) and (not self.exclude_svn or (filename.find(".svn\\")==-1)):
                print filename
                name = filename[len(self.folder)+1:]
                self.archive.write(filename, name, zipfile.ZIP_DEFLATED)

    def run(self, folder, name, exclude_svn):
        self.exclude_svn = exclude_svn
        self.folder = folder
        self.archive = zipfile.ZipFile(name+".zip", "w")
        os.path.walk(self.folder, ZipArchive.zip_it, self)
        self.archive.close()

if __name__ == "__main__":
    if (len(sys.argv)==1):
        print "usage zipit folder [name] [svn:yes|no]"
    else:
        name = sys.argv[1]
        exclude_svn = False

        if (len(sys.argv)>2): name = sys.argv[2]
        if (len(sys.argv)>3): exclude_svn = (sys.argv[3]=="no")

        arch = ZipArchive()
        arch.run(sys.argv[1], name, exclude_svn)
        print "done"

2
ответ дан 07.12.2019, 08:30
  • 1
    , который вопрос, он может быть разархивирован с помощью механизма zip Windows? –  10.07.2009, 15:07
  • 2
    да. я открыл его с инструментом zip Vista. Я надеюсь, что это работает на Вас также потрясающий –  10.07.2009, 15:25

zip -Z устанавливает опцию сжатия. -Z store самый тривиальный, поскольку он не сжимается вообще. Это полезно, когда Вы используете zip как альтернатива для tar, или при поиске и устранении неисправностей. В этом случае необходимо попытаться видеть, применим ли несжатый архив из Windows. Если это применимо, Вы знаете, что необходимо будет выбрать опцию сжатия не по умолчанию.

8
ответ дан 07.12.2019, 08:30
  • 1
    , я предположил бы, что это - алгоритм сжатия, который доставляет неприятности также... –  10.07.2009, 16:44

Теги

Похожие вопросы