
有人從他們的 Mac 筆記型電腦上以 Zip 形式向我發送了一堆 PDF 文件。現在我正在嘗試提取 PDF 文件。
我在 Windows 10 上可以提取一個資料夾__MACOSX
,其中包含許多 PDF 文件,但是當我看到二進位時,它們實際上並不是正確的 PDF 格式。
在文件開頭附近,我看到一些純文字插入,例如ATTR
or com.dropbox.attrs
,顯然還有一些二進位插入,可能是這些屬性的值。
這是 Zip 的怪癖嗎?或者這些文件最初是否已損壞,例如寄件者從 Dropbox 下載它們時?還是我找錯地方了?
該資料夾不是__MACOSX
我應該查找文件的資料夾嗎?
筆記:我的問題不是理論上的,例如__MACOSX
蘋果不使用標準文件格式的目的和原因。
我的問題純粹是實用的:我迫切需要他們發送給我的PDF文件,那麼我怎麼能以可用的形式提取它們(不被那些無用的“屬性”插入損壞)(或者我如何刪除這些插入來修復PDF文件?
我可以想像解決方案的一部分是向某人借一台 Mac 筆記型電腦並在那裡打開 Zip,但我不知道如何在 Mac 上打開它。或者,如何將它們傳回——也許使用 USB 記憶棒?
請提供萬無一失的分步說明協助。如果我知道該怎麼做,我就不會問。
答案1
您可能希望將 zip 壓縮為僅包含 Windows 內容,因為__MACOSX
Windows 上不需要該分支。
請注意,此 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。