Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何正确处理文件复制/剪切&;在javafx中粘贴?_Java_File_Javafx_Clipboard_Copy Paste - Fatal编程技术网

如何正确处理文件复制/剪切&;在javafx中粘贴?

如何正确处理文件复制/剪切&;在javafx中粘贴?,java,file,javafx,clipboard,copy-paste,Java,File,Javafx,Clipboard,Copy Paste,我正在开发一个程序,我想在其中添加复制粘贴(或剪切粘贴)文件的可能性。我可以创建它,这样它只在程序中工作,但是如果我可以使用系统范围的剪贴板,那就更好了。但这有一个很大的问题:粘贴时,我不知道文件是从系统浏览器复制还是剪切的,我只知道文件的位置 我正在使用Java和javafx剪贴板。一些示例代码: Clipboard clipboard = Clipboard.getSystemClipboard(); List<File> files = clipboard.getFiles()

我正在开发一个程序,我想在其中添加复制粘贴(或剪切粘贴)文件的可能性。我可以创建它,这样它只在程序中工作,但是如果我可以使用系统范围的剪贴板,那就更好了。但这有一个很大的问题:粘贴时,我不知道文件是从系统浏览器复制还是剪切的,我只知道文件的位置

我正在使用Java和javafx剪贴板。一些示例代码:

Clipboard clipboard = Clipboard.getSystemClipboard();
List<File> files = clipboard.getFiles();

// destDir is a File, the target directory.
for (File oldFile : files) {
    if (oldFile.isDirectory()) {
        FileUtils.copyDirectoryToDirectory(oldFile, destDir);
    } else {
        FileUtils.copyFileToDirectory(oldFile, destDir);
    }
}
Clipboard Clipboard=Clipboard.getSystemClipboard();
List files=clipboard.getFiles();
//destDir是一个文件,即目标目录。
用于(文件旧文件:文件){
if(oldFile.isDirectory()){
copyDirectoryToDirectory(旧文件,destDir);
}否则{
copyFileToDirectory(旧文件,destDir);
}
}
在这里,我只是复制文件,但我如何知道何时使用
FileUtils.copyDirectoryToDirectory
以及何时使用
FileUtils.moveDirectoryToDirectory
(也称为复制或剪切)

谢谢,

Luca证明,这只有在使用拖板拖放时才可能实现。剪贴板没有这样的功能。

您不能。剪贴板将只提供路径或(通常)数据。您可以在对话框中添加“剪切”或“复制”按钮。您可能还想知道,当使用ctrl+c/ctrl+v等时,
DragBoard
是否为TransferMode生成有效值。@Fildor不幸的是,系统剪贴板没有TransferMode。。。拖放确实是将文件从程序移动到资源管理器的更好选择,反之亦然。谢谢