この記事のポイント
- Power AutomateでSharePointのファイルをゴミ箱へ移動するだけなら、標準アクション「ファイルの削除」で対応できる
- フォルダの削除と、ゴミ箱を経由しない完全削除は、「SharePoint に HTTP 要求を送信します」アクションで、方法DELETEのREST APIを呼び出して行う
- ファイルはGetFileByServerRelativeUrl、フォルダはGetFolderByServerRelativeUrlで指定し、URIの末尾にrecycle()を付けるとゴミ箱へ移動、付けないと完全削除になる
- 4つのパターンの設定値と実行結果を、最後に一覧表で比較できる
小刀稱 知哉ことね ともや
得意領域
Power PlatformやSharePointを中心に設計・開発・アドバイス・教育まで幅広く担当しています。内製化をご希望の場合はお気軽にお問い合わせください!
保有資格
「SharePoint に HTTP 要求を送信します」とは、Power AutomateからSharePointのREST APIを直接呼び出せるアクションです。標準アクション「ファイルの削除」ではファイルをごみ箱(ゴミ箱)へ移動することしかできませんが、このアクションを使うと、フォルダの削除や、ゴミ箱を経由しない完全削除もフローで自動化できます。
本ブログでは、SharePointのファイル・フォルダを「ゴミ箱へ移動」「完全削除」する4つのパターンを、アクションの設定値と実行結果つきで紹介します。
ファイルの整理や削除をフローで自動化すると、手作業の手間は減りますが、完全削除のように元に戻せない処理も含まれます。SharePointのライブラリ設計や、安全に動くフローづくりについて相談したい場合は、以下もご参照ください。
前提:削除するファイルとフォルダの保存場所
今回削除するファイルやフォルダについて、その保存場所を以下に記載します。
※「sampleLibrary」というライブラリに保存しています。

ファイルをゴミ箱へ移動するには?(標準アクション/HTTP要求)
最初はファイルの削除(ゴミ箱へ移動)する方法です。
こちらは「ファイルの削除」という標準アクションで対応可能です。 特に説明する必要はないかと思いますが、以下にスクリーンショットを貼っておきます。

また、標準アクション以外にも「SharePoint に HTTP 要求を送信します」アクションを用いて実装できます。

方法 DELETE
_api/web/GetFileByServerRelativeUrl('/sites/<サイト名>/<ライブラリ名>/<フォルダ名>/<ファイル名>')/recycle()ポイントは、URIの書き方です。
「方法」はDELETEを選ぶ
ファイルは「GetFileByServerRelativeUrl(‘/sites/サイト名/ライブラリ名/フォルダ名/ファイル名’)」で指定する(パスはサイトからの相対パス)
ゴミ箱へ移動するときは、URIの末尾に「/recycle()」を付ける
結果(ファイルの削除:ゴミ箱へ移動)
上記フローを実行すると、file1.docxファイルは削除され、ゴミ箱へ移動していることがわかります。

ファイルを完全削除するには?
続いて、ファイルの削除(完全削除)する方法です。
完全削除する方法は標準アクションでは対応できませんので、「SharePoint に HTTP 要求を送信します」アクションを用いて実装します。

ファイルの削除(ゴミ箱へ移動・HTTPアクション)と同様の処理となりますが、完全削除の場合は、URI部分の「recycle()」が不要です。
方法 DELETE
_api/web/GetFileByServerRelativeUrl('/sites/<サイト名>/<ライブラリ名>/<フォルダ名>/<ファイル名>')結果(ファイルの削除:完全削除)
上記フローを実行すると、file1.docxファイルはゴミ箱へ移動せず、完全削除されていることがわかります。

フォルダをゴミ箱へ移動するには?
上記までで、ファイルの削除方法について紹介しました。
以降では、フォルダの削除処理についても紹介します。
標準アクション「ファイルの削除」ではフォルダを削除できないため、「SharePoint に HTTP 要求を送信します」アクションを用いて実装します。
アクションの設定値は以下を参考にしてください。

方法 DELETE
_api/web/GetFolderByServerRelativeUrl('/sites/<サイト名>/<ライブラリ名>/<フォルダ名>')/recycle()ポイントは、URIの書き方です。
「方法」はDELETEを選ぶ
フォルダは「GetFolderByServerRelativeUrl(‘/sites/サイト名/ライブラリ名/フォルダ名’)」で指定する(ファイルのときはGetFileでしたが、フォルダの場合は「GetFolder」となります)
ゴミ箱へ移動するときは、URIの末尾に「/recycle()」を付ける
結果(フォルダの削除:ゴミ箱へ移動)
上記フローを実行すると、folder1フォルダは削除され、ゴミ箱へ移動していることがわかります。

フォルダを完全削除するには?
最後は、フォルダの削除(完全削除)する方法です。
こちらも「SharePoint に HTTP 要求を送信します」アクションを用いて実装します。

フォルダの削除(ゴミ箱へ移動)と同様の処理となりますが、完全削除の場合は、URI部分の「recycle()」が不要です。
方法 DELETE
_api/web/GetFolderByServerRelativeUrl('/sites/<サイト名>/<ライブラリ名>/<フォルダ名>')結果(フォルダの削除:完全削除)
上記フローを実行すると、folder1フォルダはゴミ箱へ移動せず、完全削除されていることがわかります。

参考:SharePointの画面で手動で完全削除するには?
Power Automateを使わずに、SharePointの画面でファイルやフォルダを削除した場合も、まずサイトのごみ箱(第1段階)に移動します。ごみ箱からさらに削除するとサイト コレクションのごみ箱(第2段階)に移り、第2段階からも削除すると完全に削除されます。第2段階のごみ箱を操作するには、サイトの所有者または管理者の権限が必要です。
削除したアイテムは、元の場所から削除した日から93日間保持され、期間を過ぎると自動で完全に削除されます。一方、今回紹介したHTTP要求(recycle()なし)での削除は、ごみ箱を経由せずにすぐ完全削除されるため、元に戻せない点に注意してください。
なお、画面でファイルやフォルダを削除できない場合は、ファイルがチェックアウトされている、編集権限がない、保持ポリシーやラベルで削除が制限されている、といった原因が考えられます。ごみ箱の見え方については、以下の記事も参考にしてください。
まとめ
上記で紹介した各処理方法について、以下でまとめます。
| 対象 | ゴミ箱へ移動 | 完全削除 |
|---|---|---|
| ファイルの削除 | ・標準アクション ・HTTPアクション(GetFile…+recycle()) | ・HTTPアクション(GetFile…) |
| フォルダの削除 | ・HTTPアクション(GetFolder…+recycle()) | ・HTTPアクション(GetFolder…) |
削除する対象(ファイル or フォルダ)については、GetFileorGetFolderで指定する事ができます。 また、ゴミ箱へ移動させる場合には、URIの末尾に「recycle()」を付与することで対応可能です。
おわりに
今回は、小ネタとして「ファイルやフォルダを削除する方法(ゴミ箱・完全削除)」についてお伝えしました。
ファイルをゴミ箱へ移動するだけなら標準アクション「ファイルの削除」で対応できます。フォルダの削除と完全削除は「SharePoint に HTTP 要求を送信します」アクションで行い、URIの末尾のrecycle()の有無で、ゴミ箱へ移動するか完全削除するかを切り替えられます。
使う場面は多いと思いますので、ぜひ参考にしていただければと思います。
最後まで読んでいただき、ありがとうございました!
古いファイルの定期的な削除や、プロジェクト終了後のフォルダ整理など、SharePointの運用をPower Automateで自動化したい場面は多くあります。保持期間のルールづくりから、フローの設計・作成までまとめて検討したい方は、こちらからサービス内容をご覧いただけます。
