我试图写它在运行的代码 背景 和 显示器 的复制拷贝动作 .MP3 文件 或 包含文件夹 一个 .MP3 文件
{ Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard(); if (cb.isDataFlavorAvailable(DataFlavor.javaFileListFlavor)) { try { String name = ""+cb.getData(DataFlavor.javaFileListFlavor); boolean found = false; if (name.toLowerCase().endsWith(".mp3]")) { System.out.println("Is MP3"); found = true; } if (!found) { System.out.println("Is not MP3"); } } catch(UnsupportedFlavorException ex) { ex.printStackTrace(); } catch(IOException ex) { ex.printStackTrace(); } } }
基本上是。您需要检查Clipboard内容以查看是否支持DataFlavor.javaFileListFlavor DataFlavor。如果是这样,则需要遍历内容(java.util.List共File的)并确定内容。
Clipboard
DataFlavor.javaFileListFlavor
DataFlavor
java.util.List
File
以下仅检查文件是否为.mp3文件(通过检查名称扩展名),但并不难检查isDirectory并递归检查目录…
.mp3
isDirectory
Clipboard cb = Toolkit.getDefaultToolkit().getSystemClipboard(); if (cb.isDataFlavorAvailable(DataFlavor.javaFileListFlavor)) { try { List files = (List) cb.getData(DataFlavor.javaFileListFlavor); boolean found = false; for (Object o : files) { if (o instanceof File) { File f = (File) o; if (f.getName().toLowerCase().endsWith(".mp3")) { System.out.println("I haz MP3"); found = true; } } } if (!found) { System.out.println("I notz haz MP3"); } } catch (UnsupportedFlavorException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } }