2010-10-29 5 views
6

Je recevrai UNIQUEMENT une "Erreur # 3000: nom de chemin illégal" si j'essaie d'ouvrir un fichier qui est placé dans le dossier de l'air de l'application. Si le fichier se trouve ailleurs que dans le dossier de l'application, cela fonctionne.openWithDefaultApplication échoue sur les fichiers dans le dossier de l'application

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

    } 

Lorsque j'essaie d'obtenir le même fichier et de le copier dans un autre endroit, tout va bien.

Pourquoi cela? Quelque chose de spécial à faire si je veux ouvrir des fichiers qui se trouvent dans le dossier d'application? Il ne fonctionne également pas en mode débogage - bin-debug.

Cordialement, Temo

Répondre

11

Après avoir lu le document quelques fois je l'ai vu que ce n'est pas possible (ce n'est pas un bug, il est une fonctionnalité!!)

Opening files with the default system application

Vous ne peut pas utiliser la méthode openWithDefaultApplication() avec des fichiers situés dans le répertoire de l'application.

Je fais ceci:

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

Pas si beau, mais il fonctionne.

+1

Vous êtes un épargnant de vie. Je détachai ma tête en essayant de comprendre ce message d'erreur cryptique. Vous penseriez qu'ils seraient un peu plus utiles dans l'erreur messgae: "Yo, désolé, mais vous ne pouvez pas mettre les fichiers ouverts dans votre App Storage Directory, dawg." Ou quelque chose à cet effet. –

Questions connexes