3

NetBeansプラットフォームを使用してJavaでデスクトップアプリを作成しました。私のアプリでは、ファイルまたはフォルダーのコピーと貼り付けのオプションを個別に指定したいと思います。

では、どうすればそれができますか?やってみFiles.copy(new File("D:\\Pndat").toPath(),new File("D:\\212").toPath(), REPLACE_EXISTING);ました。しかし、正確な出力は得られません。

他に選択肢があれば、私に提案してください。

4

4 に答える 4

4

「カットペースト」の場合、次のrenameTo()ように使用できます。

File source = new File("////////Source path");
File destination = new File("//////////destination path");

if (!destination.exists()) {
    source.renameTo(destination);
}

「コピー&ペースト」の場合、入力ストリームと出力ストリームを読み込む必要があります。

于 2012-12-29T15:10:43.403 に答える
3

Apache io のFileUtilsを使用して実行しますFileUtils.copyDirectory(sourceDir, destDir);

次のファイル操作も実行できます

  • ファイルへの書き込み
  • ファイルからの読み取り
  • 親ディレクトリを含むディレクトリを作成する
  • ファイルとディレクトリのコピー
  • ファイルとディレクトリの削除
  • URL との変換
  • フィルタと拡張子によるファイルとディレクトリの一覧表示
  • ファイルの内容を比較する
  • ファイルの最終変更日

apache i/o jar のダウンロード リンク。

于 2012-12-30T09:05:43.560 に答える
1

この質問は、Javaアプリで指定されたファイルをシステムのクリップボードを使用してコピーし、OSの「貼り付け」機能を使用してファイルをフォルダーにコピーすることに関連していると思います。後で OS の「貼り付け」機能を実行するために、単一のファイルを OS のクリップボードに追加する方法を示す簡単な説明の例を次に示します。必要に応じて微調整し、必要に応じてエラー/例外チェックを追加します。

二次的に、このコードはファイル名をクリップボードに配置するので、ファイル名をドキュメント エディターに貼り付けることができます。

package com.example.charles.clipboard;

import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.ClipboardOwner;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;

public class JavaToSystemClipboard {

public static void main(final String[] args) throws Exception {
    final File fileOut = new File("someFileThatExists");
    putFileToSystemClipboard(fileOut);

}

public static void putFileToSystemClipboard(final File fileOut) throws Exception {
    final Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
    final ClipboardOwner clipboardOwner = null;

    final Transferable transferable = new Transferable() {
        public boolean isDataFlavorSupported(final DataFlavor flavor) {
            return false;
        }
        public DataFlavor[] getTransferDataFlavors() {
            return new DataFlavor[] { DataFlavor.javaFileListFlavor, DataFlavor.stringFlavor };
        }
        public Object getTransferData(final DataFlavor flavor) {
            if (flavor.equals(DataFlavor.javaFileListFlavor)) {
                final List<String> list = new ArrayList<>();
                list.add(fileOut.getAbsolutePath());
                return list;
            }
            if (flavor.equals(DataFlavor.stringFlavor)) {
                return fileOut.getAbsolutePath();
            }
            return null;
        }
    };
    clipboard.setContents(transferable, clipboardOwner);
}
}
于 2013-03-28T01:21:56.367 に答える
0

FileOutputStreamFileInputStreamを使用して自分で書くことも、Apache Camelを使用することもできます。

于 2012-12-30T08:34:11.420 に答える