FileMakerでMBSプラグインを使い複数ファイルを圧縮する方法

FileMakerでMBSプラグインを使い、複数ファイルを圧縮する方法、のメモです。

使用場面はたとえばYahooショッピング出店時の画像アップロードなど。Y!では商品画像の登録に「Zip圧縮したファイル」を求められます。これは結構に手間がかかる作業なので自動化できれば楽になります。

使用する関数

ZipFile.CompressFiles

MBSプラグインの「ZipFile.CompressFiles」を使います。

コマンドの記述方法

MBS( “ZipFile.CompressFiles”; SourceFolder; ZipFilePath; FileList; Overwrite; CompressionLevel )

  • SourceFolder ・・・ 圧縮したいファイルが格納されているフォルダのパス
  • ZipFilePath ・・・ 圧縮後のZipファイルのパス(ファイル名も含める)
  • FileList  ・・・ 圧縮したいファイル名のリスト。パスは含めずファイル名のみを改行区切りで羅列する
  • Overwrite ・・・ Zipファイルがすでに存在する場合に上書きするかどうか。0:上書きしない 1:上書きする 2:既存Zipファイルに追加する
  • CompressionLevel ・・・ 圧縮レベル 0:圧縮無し 9:最大圧縮(初期値)

記述方法・実例

MBS( “ZipFile.CompressFiles”; “C:\Users\Administrator\Documents”; “C:\Users\Administrator\Desktop\test.zip”; “MBSLogo100.png¶test.png¶other.jpg”; 0; 9 )

この場合は「C:\Users\Administrator\Documents」にある「MBSLogo100.png と test.png と other.jpg」の3種のファイルを「デスクトップにtest.zip」として最大圧縮して保存する、との意味になります。

この部分を変数にすると異なるシーンで使いまわしができたり、可読性を上げたりできます。

その他役立つ関数

ファイルの圧縮と合わせて役に立つ関数など・・

ファイルサイズを取得する

ファイルサイズを取得すると、圧縮後のファイルサイズをコントロールすることができるように。Yahooショッピングの場合は25MB(FTPでアップするなら50MB)の制限があるので超えないように調整したりといった使い方が考えられます。

FilesFileSize

https://www.mbsplugins.eu/FilesFileSize.shtml

ファイルを削除する

新たに「圧縮ファイル」を作った後の各ファイルを削除しておくのに便利。その場で削除しておかないと、後から要不要の区別がつきづらくなるためです。

Files.Delete

https://www.mbsplugins.eu/FilesDelete.shtml

フォルダごと削除する

圧縮に使ったファイルが複数あるならフォルダごと削除するのが手っ取り早くて楽です。

Files.DeleteFolder

https://www.mbsplugins.eu/FilesDeleteFolder.shtml

参考ページ

https://www.mbsplugins.eu/ZipFileCompressFiles.shtml

Previous Post
Next Post