У меня есть утилита обновления в adobe air, которая должна заменить существующий файл в каталоге приложения. но когда я пытаюсь переместить файл в каталог приложения, он бросает IOError, описывая, что этот файл не может быть удален.Невозможно переместить файл с использованием файлового объекта в adobe air
Я сделал следующее;
protected function onBtnTest(event:MouseEvent):void
{
try
{
service = new File(File.applicationDirectory.nativePath + File.separator +
"assets" + File.separator + "oldFile.exe");
servic_ = new File(File.userDirectory.nativePath + File.separator + "newFile.exe");
servic_.addEventListener(Event.COMPLETE, OnMoveComplete);
servic_.addEventListener(IOErrorEvent.IO_ERROR, OnIOError);
if(service.exists)
servic_.moveToAsync(service, true);
}
catch(err:Error)
{
trace(err.message);
}
}
private function OnMoveComplete(event:Event):void
{
trace("Move Complete.");
trace("File Deleted.");
}
private function OnIOError(event:IOErrorEvent):void
{
trace("OnIOError.");
}
он всегда выполняет функцию OnIOError. но когда я пытаюсь переместить один и тот же файл в другой каталог, он отлично работает. Как я могу это сделать. Спасибо
Почему файл не может быть удален? Есть ли какие-то другие подробности? Является ли это проблемой разрешения в каталоге? Если файл заблокирован каким-либо другим открытым процессом? В какую операционную систему вы запускаете приложение? – JeffryHouser
Я думаю, что это вопрос разрешения. Он не заблокирован никаким другим процессом. Я использую окно 7., когда я запускаю свое приложение как администратор, щелкнув его правой кнопкой мыши и выбрав запуск как администратор. он отлично работает. можем ли мы сделать наше установленное приложение, которое всегда запускается в режиме администратора? Спасибо –
В коде нечего делать, чтобы убедиться, что приложение запущено в режиме администратора; которые должны выполняться пользователем на уровне операционной системы. Обычно вы не можете предполагать, что у пользователя есть доступ к работе как администратор. Лучше всего использовать каталоги, к которым должен иметь доступ пользователь, например, applicationStorageDirectory или userDirectory. Полный список описан здесь: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/filesystem/File.html – JeffryHouser