2010-10-29 24 views
6

YALNIZCA bir "Error # 3000: Yasadışı yol adı" alacağım. Dosya, uygulama klasörünün dışında başka bir yerde çalışıyorsa çalışır.openWithDefaultApplication uygulama klasöründeki dosyalarda başarısız olursa

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(); 

    } 

Aynı dosyayı almayı denediğimde ve başka bir yere kopyaladığımda, sorun yok.

Neden böyle? Appfolder içerisindeki dosyaları açmak istersem, özel bir şey var mı? Ayrıca, hata ayıklama modunda çalışmaz - bin-debug.

Selamlar, Temo

cevap

11

birkaç kez belgeyi okuduktan sonra ben bunun mümkün olmadığını gördük (bunun bir özelliktir, bir böcek değil!?!)

Opening files with the default system application

Sen uygulama dizininde bulunan dosyalarla openWithDefaultApplication() yöntemini kullanamazsınız.

file.copyTo(tempFile); 
tempFile.openWithDefaultApplication(); 

O kadar güzel, ama çalışır:

yüzden onun yerine bunu.

+1

Sen bir hayat kurtarıcısın. Bu şifreli hata mesajını anlamaya çalışırken kafamı şımartıyordum. Hata dağınıklığında biraz daha yardımcı olacağını düşünürdünüz: "Üzgünüm, ama App Storage Directory'de açık dosyaları koyamazsınız, dawg." Ya da bu etki için bir şey. –

İlgili konular