我想从系统剪贴板中读取数据。我可以使用下面的代码从剪贴板中获取复制的文本。但是如果我复制多个文件或文件夹怎么办呢。
代码
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
如何从剪贴板中获取并打印复制的文件路径及其名称?
答案 0 :(得分:6)
您应该使用DataFlavor.stringFlavor
DataFlavor.javaFileListFlavor
这将返回java.util.List,其中包含您选择的文件列表。 确保正确投射:
List fileList = (List)c.getData(DataFlavor.javaFileListFlavor)
答案 1 :(得分:3)
您正在寻找的是:c.getData(DataFlavor.javaFileListFlavor)