異なるフォルダに入っている複数のファイルをzip化する方法

studio

#1

①異なるフォルダに入っている複数のファイルをZIP化する方法

②複数のフォルダをZIP化する方法

Google等で以下の通り、様々な方法がありますが、サンプルのxamlファイル等ございましたら、
お示し頂けますと幸いです。


#2

PowerShellの “Compress-Archive” コマンドレットを使うのが手軽でしょうか。

①異なるフォルダに入っている複数のファイルをZIP化する方法
②複数のフォルダをZIP化する方法

とりあえず、複数フォルダをZipにするサンプルを。基本的な考え方はファイルもフォルダも同じです。
CompressDirectories.zip (1.9 KB)

やり方の肝になるのはどちらも、「最初はZipファイルを作成するのでUpdateオプションをつけない(またはFalseにする)、2個目以降のファイル・フォルダに対してはUpdateオプションをTrueにする」ことです。Updateオプションを使用することで、既存のZipファイルに対してファイル/フォルダを追加する、という動作になります。

ぱっと見、わかりにくいかもしれませんが、Invoke Power Shell アクティビティの、Parametersプロパティにコマンドレットの引数をつけていますので、まずそこを確認してみてください。

引数の解説は、

Microsoftのサイトが一番確実だと思うので、こちらを参照してみてください。(現状、英語しかないのがちょっと残念ですが)


#3

①こういった方法でやりますと、必ずファイル名が文字化けするのですが、何か方法はございますでしょうか?
8月3日(1).xaml (5.9 KB)

②Comperss-ArchiveのParametersプロパティはフォルダのフルパスを入れる感じでしょうか?


#4

ファイル名が文字化けする

これはWindows側の問題だと思います。Hotfixが出ているので、そちらを確認してみてください。

https://support.microsoft.com/ja-jp/help/2704299/japanese-characters-in-file-names-are-displayed-as-garbled-text-after

②Comperss-ArchiveのParametersプロパティはフォルダのフルパスを入れる感じでしょうか?

フルパスでも、Workflowからの相対パスでも大丈夫なはずです。


#5

@Honoka
Comperss-ArchiveのParametersプロパティに、フルパスを入れ、実行しますと、以下のようなエラーが出ます。何か対策はございますか?

Message: The term ‘Compress-Archive’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

Exception Type: CommandNotFoundException


#6

設定値などがわからないので何とも言えないのですが、可能性として考えられるのはフルパスに半角スペースが入っている、等でしょうか。
その場合はダブルクォーテーションで囲ってみるのを試してみてください。


#7

Hi @361oosugi,

You can use this activity to zip multiple files and folders.

Regards
Balamurugan.S