Is it possible to know whether the copied content in clipboard is mp3 file using awt.Toolkit and Clipboard in java

后端 未结 2 1417
挽巷
挽巷 2021-01-29 14:13

I am trying to write a code which runs at background and monitors the copy actions for copying a .mp3 file or a folder containing

相关标签:
2条回答
  • 2021-01-29 14:49

    My suggestion is: http://msdn.microsoft.com/en-us/library/ff468802(v=vs.85).aspx

    Using native windows C function and user JNA(Java native access library) to complete your requirement. JNA: https://github.com/twall/jna

    0 讨论(0)
  • 2021-01-29 14:53

    Basically, yes. You need to check the Clipboard contents to see if it supports the DataFlavor.javaFileListFlavor DataFlavor. If it does, you need to iterate over the contents (which is java.util.List of Files) and make a determination of the content.

    The following only checks to see if the files are .mp3 files (by checking the name extension), but it wouldn't be hard to check for isDirectory and do a recursive check of the directory...

    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();
        }
    }
    
    0 讨论(0)
提交回复
热议问题