Officeドキュメントを自動化計画 #2 zipデータを解凍するのに拡張子操作は不要

2019年6月28日

テクノロジー プログラミング

前回、拡張子をどーたらこーたら書いたら、知り合いのパソコンが苦手な人から「拡張子って何?」と言われた・・・ 拡張子と言ったら、パソコンで使うファイルに必ずくっついている「.***」ドット+英字(3文字〜4文字)のアレですよ。と説明してもなかなか理解してくれない。 その人の使っているパソコンで指差しして教えてあげたほうが早いと思い、パソコンを立ち上げてみると、なんとファイルに拡張子が付いていません・・・orz そういえば、最近のmacやwindowsのOSって、ファイル名から拡張子を非表示にするのが標準仕様になっているということをすっかり忘れていました。 開発者は、拡張子切り替えなどの操作を手動で行えるように、そうしたデフォルト設定を初っ端から切り替えてエンジニア仕様で使うことが多いので、今の今まで拡張子が表示されないということが全く頭に存在しませんでした。 ユーザーの言葉を聞くというのが改めて重要と感じさせてくれた出来事でしたね。

Officeドキュメントはzipデータ

前回、「OfficeドキュメントはZIPデータなので解凍すると中身が見れる」と説明しましたが、その手順として、拡張子をzipにして解凍、再度回答されたフォルダ群を圧縮して拡張子を元に戻すと見事にofficeドキュメントとして復旧する事も確認できました。 ここで話す拡張子の切り替え作業は、windowsやmacのOSによるGUI操作を前提にした作業内容だったのですが、実はサーバーでこの処理を行う場合、拡張子を切り替える必要がありません。 使用するコマンドは「unzip」と「zip」というそのまんまのコマンドですが、 デフォルトでインストールされているディストリビューションもありますが、インストールされていない場合は、手動でインストールしてください。 試しに、前回使ったPowerPointドキュメント「sample.pptx」でコマンド操作してみると・・・ # pptxデータを解凍 $ mkdir work $ unzip sample.pptx -d work/ workというフォルダを作って、その中にpptxの内容ファイルをすべて解凍できるのが確認できます。 # 解凍されたデータを圧縮 $ cd word $ zip -r ../sample.pptx ./* workというフォルダに入り込んでその内容を全て元のファイル名「sample.pptx」として出力(圧縮)するというコマンドです。

拡張子操作をしないメリット

拡張子を操作せずにファイル名とセットで残しておくと、それだけで、officeドキュメントのデータタイプがすぐに確認できるので、informationデータなどを作成せずに元ファイル名、データ・タイプの保持が出来るようになり、無駄な処理を無くすことができます。 また、今回はworkフォルダを作って処理をしましたが、元のファイル名、拡張子を含んだフォルダにしておくと、再圧縮する際に、圧縮出力するファイル名、拡張子がその場で取得できて非常に効率的です。 元のデータをいじらなくてもそのファイルの情報って結構重要ですからね。 出来ることなら更新タイムスタンプなどの情報もそのままにできるともっといいんですが、そうしたら更新情報じゃなくなりますね・・・ officeドキュメントを便利に扱う初期設定が決まった感じですね。 でも、ファイル名をそのままサーバーにアップするシステムにしてしまうと、同一ファイル名の場合に上書きしてしまう事になるので、どうしてもここはユニーク値にする必要がありますが、やはりiniファイルなどを作って管理したほうがいいのか・・・ユニークディレクトリを作成してその中で個別のデータ管理をするか・・・ やり方はいくつかありそうですが、臨機応変に対応できるように設計してみたいと思います。 こういうのは、β版作ってから仕様再検討をするのが僕流なので、曖昧にしたまま進めますね・・・ 次回からは実際にデータコンバートに関して調査していきたいと思います。

人気の投稿

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。

ブログ アーカイブ