ファイルバージョンの削除

ファイルバージョンの削除

ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちらまでご連絡ください。

ファイルが変更されると、Documents and Mediaは新しいファイルバージョンを作成し、以前のバージョンをそのまま残します。 時間の経過とともに、古いファイルバージョンが蓄積され、貴重なストレージスペースを消費する可能性があります。 幸いなことに、Documents and Media APIを使用してそれらを削除できます。 ただし、ファイルバージョンをごみ箱に送信する方法はないことに注意してください。一度削除すると、それらは永久に消えてしまいます。

DLAppService メソッド deleteFileVersionファイルバージョンを削除できます。

deleteFileVersion(long fileEntryId, String version)

参照してください このメソッドのJavadocの パラメータの説明について。

deleteFileVersion を使用してファイルバージョンを削除するには、次の手順に従います。

  1. DLAppServiceへの参照を取得します。

    @Reference
    private DLAppService _dlAppService;
    

    詳細については、入門チュートリアルの「サービスリファレンス 取得

」のセクションを参照してください。

2 削除するファイルのファイルエントリIDとバージョンを取得します。 エンドユーザーが指定したファイルバージョンを削除するのが一般的であるため、リクエストからこれらのパラメーターを抽出できます。 この例では、 javax.portlet.ActionRequest および ParamUtilを介してこれを行いますが、これは任意の方法で実行できます。

   long fileEntryId = ParamUtil.getLong(actionRequest, "fileEntryId");
   String version = ParamUtil.getString(actionRequest, "version");

3 サービス参照を使用して、前の手順のファイルエントリIDとバージョンで deleteFileVersion メソッドを呼び出します。

   _dlAppService.deleteFileVersion(fileEntryId, version);
  </ol> 

この例の完全なコードは、Liferay DXPの EditFileEntryMVCActionCommand クラスの deleteFileEntry メソッドにあります。 このクラスは、Documents and Media APIを使用して、Documents and Mediaアプリがサポートするほぼすべての FileEntry アクションを実装します。 また、この deleteFileEntry メソッドと EditFileEntryMVCActionCommand残りの部分には、Documents and Mediaアプリの特定のニーズに合う追加のロジックが含まれていることに注意してください。

ファイルバージョンの特定

ファイルには多くのバージョンが存在する可能性があるため、プログラムで削除する古いバージョンを特定すると便利です。 FileVersionVersionComparatorこれを行うことができます。

次の例では、このようなコンパレータを作成し、 比較 メソッドを使用してファイルの古いバージョンを識別します。 コードは、 承認された各バージョンの ファイル(fileVersion)を反復処理することにより、そうします。 各反復は、 compare メソッドを使用して、同じファイルの現在のバージョン(fileEntry.getVersion())に対してそのファイルバージョン(fileVersion.getVersion())をテストします。 この比較が 0よりも大きい場合、反復のファイルバージョン(fileVersion)は古く、 deleteFileVersionによって削除されます。

FileVersionVersionComparator comparator = new FileVersionVersionComparator();

for (FileVersion fileVersion: fileEntry.getVersions(WorkflowConstants.STATUS_APPROVED)) {

    if (comparator.compare(fileEntry.getVersion(), fileVersion.getVersion()) > 0) {

        dlAppService.deleteFileVersion(fileVersion.getFileEntryId(), fileVersion.getVersion());
    }
}

関連トピック

ファイルを削除する

ファイルのショートカットを削除する

フォルダーを削除する

エンティティをごみ箱に移動する

« ファイルを削除するファイルのショートカットを削除する »
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています