2016-05-23 113 views
0

如何確保打開的文件在使用後關閉?如何確保在Actionscript 3中打開後文件已關閉?

我使用下面的代碼來打開和寫入文件:

 var mFile:File = new File(); 
     var actvityDirectoryXMLFile:File = mFile.resolvePath (filePath); 
     var stream:FileStream = new FileStream(); 

     stream.addEventListener (Event.COMPLETE , onFileWriteComplete); 
     stream.open (actvityDirectoryXMLFile , FileMode.WRITE); 
     stream.writeUTFBytes (xml.toXMLString()); 
     stream.close(); 
     stream.openAsync (actvityDirectoryXMLFile , FileMode.READ); 
     mFile = null; 
     actvityDirectoryXMLFile = null; 

我的問題是,如果我救了我的教訓第一次則是完全節省了教訓,但修改之後,如果我保存同樣的教訓再次然後我收到以下錯誤:

「錯誤:錯誤#3013:文件或目錄在使用中flash.filesystem。」

我不知道爲什麼它顯示是這樣的我已經寫了stream.close();船尾呃文件寫入。

因此,任何人都有一個想法,爲什麼它顯示這樣或如何解決這個問題。

+2

您打開,然後關閉T母雞再次打開,最後一次操作是重要的。 – BotMaster

+1

請[編輯]你的問題,並添加所有相關的代碼。 'onFileWriteComplete'看起來像什麼?你確切的線路是否會出現錯誤? [使用調試器來遍歷代碼](https://helpx.adobe.com/animate/using/debugging-actionscript-3-0.html)。 – null

回答

0

只要你寫你使用下面的代碼

stream.openAsync (actvityDirectoryXMLFile , FileMode.READ); 

因此將其刪除打開的文件的文件,它是你的文件opwn現在或該行類似以下後使用stream.close();的原因代碼

var mFile:File = new File(); 
    var actvityDirectoryXMLFile:File = mFile.resolvePath (filePath); 
    var stream:FileStream = new FileStream(); 

    stream.addEventListener (Event.COMPLETE , onFileWriteComplete); 
    stream.open (actvityDirectoryXMLFile , FileMode.WRITE); 
    stream.writeUTFBytes (xml.toXMLString()); 
    stream.close(); 
    //stream.openAsync (actvityDirectoryXMLFile , FileMode.READ); 
    mFile = null; 
    actvityDirectoryXMLFile = null; 

或下面的代碼

var mFile:File = new File(); 
    var actvityDirectoryXMLFile:File = mFile.resolvePath (filePath); 
    var stream:FileStream = new FileStream(); 

    stream.addEventListener (Event.COMPLETE , onFileWriteComplete); 
    stream.open (actvityDirectoryXMLFile , FileMode.WRITE); 
    stream.writeUTFBytes (xml.toXMLString()); 
    stream.close(); 
    stream.openAsync (actvityDirectoryXMLFile , FileMode.READ); 
    stream.close(); 
    mFile = null; 
    actvityDirectoryXMLFile = null; 
相關問題