2010-07-12 15 views
5

में फ़ाइलों की प्रतिलिपि बनाने के लिए आवश्यक डेटाफ्लॉवर क्या है मैं वर्तमान में जावा कोड पर काम कर रहा हूं जो सिस्टम क्लिपबोर्ड में फ़ाइलों की प्रतिलिपि बना सकता है।मैक ओएसएक्स

विंडोज और लिनक्स के लिए मुझे पहले से ही यह काम मिल गया है। ओएसएक्स के लिए मैंने कई स्वादों की कोशिश की लेकिन खोजक में "पेस्ट" कार्रवाई कभी सक्रिय नहीं होती है।

कोई भी विचार जो खोजक के लिए डेटाफ्लॉवर सेटिंग्स की आवश्यकता है?

प्रयुक्त जायके:

DataFlavor.javaFileListFlavor 
URILIST_FLAVOR = new DataFlavor("text/uri-list"); 
XFILELIST_FLAVOR = new DataFlavor("application/x-java-file-list"); 
GNOMEFILELIST_FLAVOR = new DataFlavor("x-special/gnome-copied-files"); 

विधि स्वाद के लिए डेटा लौटाने के लिए:

public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { 
    if(FILELIST_FLAVOR.equals(flavor)) { 
     if(List.class == flavor.getRepresentationClass()) { 
      return Arrays.asList(files); 
     } else if(InputStream.class == flavor.getRepresentationClass()) { 
      return getStreamData(files, null); 
     } 
    } else if(DataFlavor.javaFileListFlavor.equals(flavor)) { 
     if(List.class == flavor.getRepresentationClass()) { 
      return locallist; 
     } else if(InputStream.class == flavor.getRepresentationClass()) { 
      return getStreamData(files, null); 
     } 
    } else if(URILIST_FLAVOR.equals(flavor)) { 
     if(List.class == flavor.getRepresentationClass()) { 
      return Arrays.asList(files); 
     } else if(InputStream.class == flavor.getRepresentationClass()) { 
      return getStreamData(files, null); 
     } 
    } else if(GNOMEFILELIST_FLAVOR.equals(flavor)) { 
     if(List.class == flavor.getRepresentationClass()) { 
      return Arrays.asList(files); 
     } else if(InputStream.class == flavor.getRepresentationClass()) { 
      // FIXME support cut and copy 
      return getStreamData(files, "copy"); 
     } 
    } else if(XFILELIST_FLAVOR.equals(flavor)) { 
     if(List.class == flavor.getRepresentationClass()) { 
      return locallist; 
     } else if(InputStream.class == flavor.getRepresentationClass()) { 
      return getStreamData(files, null); 
     } 
    } 
    throw new UnsupportedFlavorException(flavor); 
} 

धन्यवाद, आन्द्रे

+0

कोई भी विचार नहीं है? –

उत्तर

0

शायद तुम DataFlavor#javaFileListFlavor कोशिश करनी चाहिए। API दस्तावेज़ों से

अंश:

DataFlavor # javaFileListFlavor (Link)

जावा (और अंतर्निहित मंच) इस प्रकार के/उप-प्रकार की एक DataFlavor से/फ़ाइलों की एक सूची स्थानांतरित करने के लिए और java.util.List का प्रतिनिधित्व वर्ग का उपयोग किया जाता है। सूची के प्रत्येक तत्व की आवश्यकता है/java.io.File प्रकार की गारंटी है।
+0

रास्ते से ... 'System.out.println का परिणाम (DataFlavor.javaFileListFlavor.getMimeType());' 'application/x-java-file-list है; वर्ग = java.util.List' – headcr4sh

+0

कृपया मेरा प्रश्न देखें: javaFileListFlavor पहले से ही संभाला जा चुका है। खोजक इस स्वाद का उपयोग नहीं करता है। –

+0

ओह ... यह वास्तव में बहुत अजीब लगता है। – headcr4sh