如何正确处理文件复制/剪切&;在javafx中粘贴?
我正在开发一个程序,我想在其中添加复制粘贴(或剪切粘贴)文件的可能性。我可以创建它,这样它只在程序中工作,但是如果我可以使用系统范围的剪贴板,那就更好了。但这有一个很大的问题:粘贴时,我不知道文件是从系统浏览器复制还是剪切的,我只知道文件的位置 我正在使用Java和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()
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。。。拖放确实是将文件从程序移动到资源管理器的更好选择,反之亦然。谢谢