어도비 에어에 업데이트 유틸리티가있어 애플리케이션 디렉토리의 기존 파일을 대체해야합니다. 하지만 응용 프로그램 디렉토리에서 파일을 이동하려고하면 파일을 삭제할 수 없다는 IOError가 발생합니다.어도비 에어에서 파일 객체를 사용하여 파일을 이동할 수 없습니다.
나는 다음을했다.
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