2010-10-29 61 views
6

यदि मैं हवा के ऐप-फ़ोल्डर के अंदर रखी गई फ़ाइल खोलने का प्रयास करता हूं तो मुझे केवल "त्रुटि # 3000: अवैध पथ नाम" प्राप्त होगा। यदि फ़ाइल ऐप-फ़ोल्डर के बाहर कहीं और है तो यह काम करती है।openWithDefault एप्लिकेशन अनुप्रयोग फ़ोल्डर में फ़ाइलों पर विफल रहता है

private var file:File = File.documentsDirectory; 

    public function download():void{ 
     var pdfFilter:FileFilter = new FileFilter("PDF Files", "*.pdf"); 
     file.browseForOpen("Open", [pdfFilter]); 
     file.addEventListener(Event.SELECT, fileSelected); 
    } 

    private function fileSelected(e:Event):void 
    { 
     var destination:File = File.applicationDirectory 
     destination = destination.resolvePath("test.pdf"); 
     /* 
     //This works, also if the file to copy is placed inside the appfolder 
     file.copyTo(destination, true); 
     */ 

     /*This Throws me an Error #3000, but ONLY if the file is located in 
     the App folder*/ 
     file.openWithDefaultApplication(); 

    } 

जब मैं एक ही फ़ाइल प्राप्त करने की कोशिश करता हूं और इसे दूसरी जगह पर कॉपी करता हूं तो यह ठीक हो रहा है।

क्यों? अगर मैं एपफोल्डर के अंदर फाइलें खोलना चाहता हूं तो कुछ खास करना है? यह डीबग मोड में भी काम नहीं करता - बिन-डीबग।

सादर, Temo

उत्तर

11

दस्तावेज़ कई बार पढ़ने के बाद मैंने देखा कि यह संभव नहीं है (यह एक बग नहीं है, यह एक विशेषता है!?!)

Opening files with the default system application

आप एप्लिकेशन निर्देशिका में स्थित फ़ाइलों के साथ openWithDefaultAplication() विधि का उपयोग नहीं कर सकता।

तो मैं बजाय ऐसा करते हैं:

file.copyTo(tempFile); 
tempFile.openWithDefaultApplication(); 
नहीं

बहुत अच्छा है, लेकिन यह काम करता है।

+1

आप एक जीवन बचतकर्ता हैं। मैं इस गुप्त त्रुटि संदेश को समझने की कोशिश कर रहा था। आपको लगता है कि वे त्रुटि मैसेगा में थोड़ा और सहायक होंगे: "यो, क्षमा करें, लेकिन आप ऐप स्टोरेज डायरेक्टरी, डॉज में खुली फाइलें नहीं डाल सकते हैं।" या प्रभाव के लिए कुछ है। –

संबंधित मुद्दे