在java中读取系统剪贴板数据

时间:2014-11-12 04:28:07

标签: java clipboard

我想从系统剪贴板中读取数据。我可以使用下面的代码从剪贴板中获取复制的文本。但是如果我复制多个文件或文件夹怎么办呢。

代码

Clipboard c=Toolkit.getDefaultToolkit().getSystemClipboard();
try {
     System.out.println(c.getData(DataFlavor.stringFlavor));
} catch (Exception ex) {
     System.out.println(ex);
} 

如果我在剪贴板中有复制文件列表,则相同的代码显示异常。

异常

java.awt.datatransfer.UnsupportedFlavorException: Unicode String

如何从剪贴板中获取并打印复制的文件路径及其名称?

2 个答案:

答案 0 :(得分:6)

您应该使用DataFlavor.stringFlavor

,而不是使用DataFlavor.javaFileListFlavor

这将返回java.util.List,其中包含您选择的文件列表。 确保正确投射:

List fileList = (List)c.getData(DataFlavor.javaFileListFlavor)

答案 1 :(得分:3)

您正在寻找的是:c.getData(DataFlavor.javaFileListFlavor)

相关问题