2010-01-15 8 views
1

Je télécharge et stocke les fichiers localement dans le domaine de stockage de l'application. Pour une raison quelconque, l'un des fichiers est verrouillé par l'air. J'ai trouvé cela en regardant l'explorateur de processus.Adobe AIR - fichier verrouillé par air

Si j'efface le cache du navigateur, le fichier ne se verrouille jamais, seulement s'il tente de télécharger le fichier mais qu'il existe dans le cache du navigateur, verrouillez le fichier.

Pouvez-vous aider?

Neil

Répondre

2

Ok J'ai résolu le problème. Cela n'a rien à voir avec le navigateur qui cache le fichier, ou plutôt pas directement. Je réutilisais un objet FileStream et téléchargeais des fichiers de manière asynchrone. Donc, après chaque fichier téléchargé, je peux fileStream.close() et commencer à télécharger le fichier suivant.

Parfois, je réutiliserais le fichier fileStream avant la fin du processus. La méthode correcte consiste à ajouter un écouteur à l'objet fileStream, puis à continuer une fois qu'il a été fermé.

par exemple:

fileStream.addEventListener(Event.CLOSE, checkCloseHandler); 
fileStream.close(); 

private function checkCloseHandler(e:Event):void 
{ 
    trace("FileCacheProxy.checkCloseHandler(): " + file.url); 
    fileStream.removeEventListener(Event.CLOSE, checkCloseHandler); 
    resumeQueue(); 
}