2014-03-24 22 views
3

我遇到了一個很模糊的問題。 如果我在特立獨行的地方壓縮一些東西(右鍵點擊 - >壓縮),它可以在Mac,Windows和Linux上解壓縮,它可以正常工作並顯示所有文件。Objective-C奇怪的解壓縮行爲導致損壞的文件

當我在iOS設備上使用「ZipArchive」或「SSZipArchive」對其進行解壓縮時,同一個文件總是被損壞。

如果我通過終端壓縮文件,它可以在ios設備上解壓縮。

有問題的文件是一個小的50KB視頻。我曾嘗試設置不同的標誌,以查看是否可以通過終端重新創建問題以找出造成問題的標誌,並且找不到原因。

我已經用最大壓縮和最小壓縮壓縮文件,看看是否是原因,我也測試了壓縮文件,看它是否損壞或有隱藏字符。

爲了讓它變得更加怪異,這些拉鍊通常會包含大約50個視頻文件,並且我有大約23個拉鍊。解壓縮代碼在2周前一直運行良好。在過去的兩週內,我發現了7個損壞的文件,並且損壞是一致的 - 它始終是始終損壞的相同文件。

損壞的文件通常比工作文件小几kb,無法打開或強制播放。

他們所有原本使用特立獨行的拉鍊,沒有任何改變。

這個問題現在已經變得更加關於事實調查,因爲我可以通過終端壓縮文件,但我想知道是什麼原因引起的問題,所以我可以在將來避開它。

感謝

+0

確保您試圖在設備上提取的ZIP文件與您在其他平臺上可以提取的ZIP文件完全相同 - 也許您的傳送機制已損壞。 – Till

+0

是的,使用「壞」機制提取一個文件,並將其與從相同的壓縮文件中提取的相同文件進行比較,並使用「良好」機制來查看有什麼不同。 –

+0

他們是相同的,我們甚至試圖將他們自己添加到設備,我們仍然面臨同樣的問題。我們最初認爲他們正在通過SSL導致這個問題。 – Marwan

回答

0

點擊右鍵 - >壓縮選項OSX上創建一個包含名爲__MACOSX一個額外的目錄,其中包含元數據used by the Finder(圖像縮略圖和其他東西)的zip文件。有關更詳細的解釋,另請參閱this superuser question。 這個文件夾存在的原因是因爲原始的Mac OS實現了資源分叉的概念 - 實質上是存儲關於特定文件/目錄的結構化數據以及非結構化數據的一種方式,因此它可以被可執行文件很容易地訪問 - 維基百科文章here(也參考SU問題)

iOS不理解這種結構,所以解壓縮失敗。

+0

這將是一個完美的解釋。沒有工作了1.5年,所有的人突然決定不工作。 最近發現的其他信息是它不喜歡使用python庫的窗口壓縮。但永遠不要多謝你的答案。 – Marwan

0

因此,花了幾天的時間調查了這個問題後,問題變成了視頻轉換腳本中的一個標誌,導致了這個問題,我們也刪除了所有文件上的所有壓縮文件以保證安全,一切似乎都正常。 非常感謝大家的貢獻。