2010-10-29 10 views
6

Riceverò SOLO un "Errore # 3000: nome percorso non valido" se provo ad aprire un file che si trova all'interno della cartella dell'app dell'aria. Se il file si trova altrove nella cartella dell'app, funziona.openWithDefaultApplication non riesce sui file nella cartella dell'applicazione

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

    } 

Quando provo a ottenere lo stesso file e copiarlo in un altro luogo che sta facendo bene.

Perché? Qualcosa di speciale da fare se voglio aprire i file che si trovano all'interno della appfolder? Inoltre non funziona in modalità debug - bin-debug.

saluti, Temo

risposta

11

Dopo aver letto il documento di un paio di volte ho visto che questo non è possibile (non è un bug, è una caratteristica!?!)

Opening files with the default system application

È non è possibile utilizzare il metodo openWithDefaultApplication() con i file che si trovano nella directory dell'applicazione.

Così faccio questo, invece:

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

Non è così bello, ma funziona.

+1

Sei un risparmiatore di vita. Stavo bonificando la mia testa cercando di capire questo criptico messaggio di errore. Penseresti che sarebbero un po 'più utili nel messaggio di errore: "Sì, mi spiace, ma non puoi mettere file aperti nella tua directory di archiviazione delle app, dawg." O qualcosa in tal senso. –