2016-05-23 6 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; 

Моя проблема заключается в том, что если я спасаю мои уроки в первый раз, то он сохраняет уроки отлично, но после модификации, если я спасая одни и те же уроки снова тогда я получаю следующее сообщение об ошибке:

«Ошибка: Error # 3013: Файл или папка используется в flash.filesystem.»

Я не знаю, почему он показывает, как это как Я уже написал stream.close(); кормовой er file write.

Итак, у кого-нибудь есть идея, почему это так выглядит или как решить эту проблему.

+2

открытии затем закройте т снова откройте, последняя операция - это та, которая имеет значение. – 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; 

 Смежные вопросы

  • Нет связанных вопросов^_^