35

ここで鍵となるのはJavaです。ファイルを削除できるようにする必要がありますが、ユーザーはごみ箱から「削除を取り消す」ことができることを期待しています。私が知る限り、これは不可能です。他に誰か知っていますか?

4

9 に答える 9

28

10 年後の Java 9 では、ファイルをごみ箱に移動する方法が組み込まれています。

java.awt.Desktop.moveToTrash(java.io.File):

public boolean moveToTrash​(File file)

指定したファイルをごみ箱に移動します。

パラメーター:

ファイル - ファイル

戻り値:

ファイルがゴミ箱に移動された場合は true を返します。

基盤となるプラットフォームでこの機能が利用できるかどうかは、 でテストできますDesktop.isSupported​(Desktop.Action.MOVE_TO_TRASH)

于 2018-01-16T14:56:50.667 に答える
26

さまざまな理由から、Windowsには単にごみ箱に対応するフォルダーという概念がありません

正しい方法は、JNI を使用して Windows SHFileOperationAPIを呼び出し、構造体にFO_DELETEフラグを設定することです。SHFILEOPSTRUCT

于 2008-10-21T16:33:40.827 に答える
2

SHFileOperation を使用してファイルをごみ箱に送信する例への正しいリンクは次のとおりです。

于 2009-11-26T00:53:17.047 に答える
2

I have found this RFE on suns site: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5080625

This tells me there is not a native java way to do this. and as @John Topley just posted the only solution is a JNI call.

于 2008-10-21T16:38:27.167 に答える
2

fileutil incubator プロジェクト ( Java Desktop Integration Componentsプロジェクトの一部) を参照してください。

このインキュベータ プロジェクトは、これらのファイル ユーティリティ機能をホストするために作成されます。そのほとんどは、J2SE の java.io.File クラスの拡張機能です。ファイルをごみ箱に送る、ディスクの空き容量を確認する、ファイル属性にアクセスするなどの機能について、Java 開発者から頻繁に要求があります。このプロジェクトは、そのような頻繁に要求される API に対処します。

これは Windows だけでなく、他のプラットフォーム (Linux、Mac OS X) でも機能するはずです。

于 2009-09-30T12:20:50.823 に答える
1

John Topley が示唆しているように、ネイティブ操作でこれを行う必要があります。一部の JNI で手を汚したくない場合は、Java Native Accessと呼ばれるライブラリを使用してネイティブ呼び出しを行うことができます。

于 2008-10-21T17:58:06.540 に答える