
誰かが Mac ラップトップから PDF ファイルを Zip 形式で大量に送信してきました。現在、PDF ファイルを抽出しようとしています。
私は Windows 10 を使用していますが、フォルダーを抽出でき__MACOSX
、その中に多数の PDF ファイルを含むフォルダーがありますが、バイナリでファイルを見ると、実際には正しい PDF 形式ではありません。
ファイルの先頭近くに、ATTR
やなどのプレーンテキストの挿入がいくつかあり、com.dropbox.attrs
また、明らかにバイナリの挿入もいくつかあり、おそらくそれらの属性の値です。
これは Zip の癖でしょうか? それとも、送信者が Dropbox からダウンロードしたときなど、これらのファイルは元々破損していたのでしょうか? それとも、私が間違った場所を探しているのでしょうか?
__MACOSX
ファイルを探す場所はフォルダではないのですか?
注記私の質問は、何__MACOSX
を意図していたのか、なぜ Apple が標準のファイル形式を使用しないのかといった理論的なものではありません。
私の質問は純粋に実用的なものです。送られてきた PDF ファイルを緊急に必要としているのですが、どうすればそれらを使用可能な形式 (役に立たない「属性」挿入によって破損していない形式) で抽出できるでしょうか (または、どうすればそれらの挿入を削除して PDF ファイルを修復できるでしょうか)。
解決策の 1 つは、誰かから Mac ラップトップを借りて、そこで Zip を開くことだと想像できますが、Mac でそれを開く方法がわかりません。または、USB スティックを使って、それらを転送する方法はありますか?
絶対に間違いのないステップバイステップの手順を教えてください。何をすべきかわかっていたら、質問しません。
答え1
__MACOSX
Windows ではフォークは必要ないので、zip を Windows コンテンツだけに縮小することもできます。
この cmd スクリプトは、広範囲なチェックは行わず、独自の機能強化のためのテンプレートであることに注意してください。問題を回避し、必要に応じて結果を調整するために、作業フォルダーに MAC ファイルの作業用「コピー」を用意する必要があります。
ここでは、ドラッグ アンド ドロップの例が使用されています。スクリプトは 1 つのフォルダーにあり、 はVBExample.zip
独自のフォルダーにあります。サブフォルダーは表示されますが、まだ解凍されていません。
zip がバックアップされ、フォークなしでサイズが縮小された後、ボーナスとして解凍されたコンテンツがそこにあります (必要に応じて削除できます)。
このスクリプトは、すべての Mac の zip で動作するという「保証はありません」。より一般的なバリアントでは動作します。常に、入手した 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 と小さすぎる場合などが挙げられます。