2010-06-17 1 views
1
에게

을 던져 내 코드입니다 : 내가 실행하고 항상 오류가 발생 기능을 시작하면하여 FileStream openAsync()는 여기에서 SecurityError

package com.func 
{ 
    public class Downloader 
    { 
     import flash.events.*; 
     import flash.filesystem.*; 
     import flash.net.FileReference; 
     import flash.net.URLStream; 
     import flash.utils.ByteArray; 
     import flash.net.URLRequest; 
     import mx.controls.Alert; 

     private var req:URLRequest = new URLRequest(); 
     private var us:URLStream = new URLStream(); 
     private var fs:FileStream = new FileStream(); 
     public function Downloader() 
     { 
     } 

     public function download():void{ 
      var file:File = File.applicationDirectory.resolvePath("quotes.csv"); 
      req.url = "http://www.domain.com/data.csv"; 
      us.addEventListener(ProgressEvent.PROGRESS, writeFile); 
      us.addEventListener(Event.COMPLETE, loaded); 
      fs.openAsync(file, FileMode.WRITE); 
      us.load(req); 
     } 

     public function writeFile(event:Event):void{ 
      var data:ByteArray = new ByteArray(); 
      us.readBytes(data, 0, us.bytesAvailable); 
      fs.writeBytes(data, 0, data.length); 
     } 

     public function loaded(event:Event):void{ 
      var data:ByteArray = new ByteArray(); 
      us.readBytes(data, 0, us.bytesAvailable); 
      fs.writeBytes(data, 0, data.length); 
      fs.close(); 
     } 
    } 
} 

. 오류 메시지 :

SecurityError: fileWriteResource 
    at runtime::SecurityManager$/checkPrivilegeForCaller() 
    at flash.filesystem::FileStream/openAsync() 

아무도 도와 줄 수 있습니까?

답변

3

문제가 해결되었습니다. applicationDirectory는 읽기 전용입니다.