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
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
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 File
s) 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();
}
}