如何在 Windows 上從 macOS 解壓縮 zip,Mac 製作的 Zip 中的「__MACOSX」資料夾是否是尋找 Zip 內容的正確位置?

如何在 Windows 上從 macOS 解壓縮 zip,Mac 製作的 Zip 中的「__MACOSX」資料夾是否是尋找 Zip 內容的正確位置?

有人從他們的 Mac 筆記型電腦上以 Zip 形式向我發送了一堆 PDF 文件。現在我正在嘗試提取 PDF 文件。

我在 Windows 10 上可以提取一個資料夾__MACOSX,其中包含許多 PDF 文件,但是當我看到二進位時,它們實際上並不是正確的 PDF 格式。

在文件開頭附近,我看到一些純文字插入,例如ATTRor com.dropbox.attrs ,顯然還有一些二進位插入,可能是這些屬性的值。

這是 Zip 的怪癖嗎?或者這些文件最初是否已損壞,例如寄件者從 Dropbox 下載它們時?還是我找錯地方了?

該資料夾不是__MACOSX我應該查找文件的資料夾嗎?


筆記:我的問題不是理論上的,例如__MACOSX蘋果不使用標準文件格式的目的和原因。

我的問題純粹是實用的:我迫切需要他們發送給我的PDF文件,那麼我怎麼能以可用的形式提取它們(不被那些無用的“屬性”插入損壞)(或者我如何刪除這些插入來修復PDF文件?

我可以想像解決方案的一部分是向某人借一台 Mac 筆記型電腦並在那裡打開 Zip,但我不知道如何在 Mac 上打開它。或者,如何將它們傳回——也許使用 USB 記憶棒?

請提供萬無一失的分步說明協助。如果我知道該怎麼做,我就不會問。

答案1

您可能希望將 zip 壓縮為僅包含 Windows 內容,因為__MACOSXWindows 上不需要該分支。

請注意,此 cmd 腳本不會進行廣泛的檢查,而是您自己的增強功能的範本。您應該在工作資料夾中擁有 MAC 檔案的工作“副本”,以避免在根據需要調整結果時出現問題。

這裡使用了一個拖放範例。該腳本位於一個資料夾中,而 則VBExample.zip位於自己的資料夾中。我們可以看到它的子資料夾,但它們尚未解壓縮。

在此輸入影像描述

前:
在此輸入影像描述

在備份 zip 並在沒有叉子的情況下減小大小之後,作為獎勵,解壓的內容就在那裡(如果您願意,可以刪除):
在此輸入影像描述

該腳本具有適用於所有 Mac zip 的「零保證」。它適用於更常見的變體。始終使用您收到的副本。然後根據需要刪除工作副本。

if not exist "%~dpn1.zip" goto EOF
pushd "%~dp1"

copy "%~dpn1.zip" "%~dpn1-backup.zip"
tar -xf "%~dpn1.zip"
rd /s /q __MACOSX
tar -a -cf "%~dpn1.zip" "%~n1\*.*"

if not exist "%~dpn1.zip" echo FAILED & pause
REM [optionally remove the unpacked folder] RD /S /Q "%~n1"

:exit
popd

失敗的原因可能包括檔案名稱與資料夾名稱不匹配,請參閱新的 zip 太小為 1 KB。 在此輸入影像描述

在這種情況下,我們可以使用發送到正確命名的 zip 資料夾輕鬆重建。 在此輸入影像描述 在此輸入影像描述

或確保外部 zip 名稱反映內部資料夾名稱。 在此輸入影像描述

相關內容