Air 2010.10.21 17:28
플생에 "야메코더" 님이 올리신 소켓을 이용한 파일 저장...을 보고..

air로 함 만들어봐야지...

하고 아침에 생각헤서 오후 5시가 됬네요;;-0-;;

간만에 코딩해봤는데...

중요한코딩은 정말 후딱 마쳤는데...

변수하나를 지역변수로 해놓고 계속 안된다고 5시간동안 삽질하고 있었네요..-0-;;;;;;;


로컬 커넥션을 이용해 air로 만들고 싶은 파일을 byteArray로 넘기고 (저장 주소와, 파일이름도...)

air에서 해당 경로에 파일을 써넣는게 끝입니다..

로컬커넥션이니.... 웹이건 로컬이건 전부 사용할수 있을것 같구요...(혹시나 보안문제상 안될수도 있지만 예외처리해서 풀어버리면 가능할듯....)

없는 경로는 ...디렉토리를 만들고 저장하는지...테스트 안해봤네요...(테스트는 간단하지만...급 귀차니즘이..-0-;;;)

byteArray사용하니...as3.0이상으로만 코딩이 가능합니다...
테스트는 안해봤지만 png파일이나 음원파일등등도 로컬에 저장시킬수는 있겠쬬....
(간단한 string은 약간수정하면 air에서 바로 byteArray로 변환해서 저장도 가능할테고..암호화도 가능할것같네요...ㅎㅎ)

첨부한 air파일 설치하고,
package
{
import flash.display.Sprite;
import flash.events.StatusEvent;
import flash.net.LocalConnection;
import flash.utils.ByteArray;
public class Main extends Sprite
{
public function Main()
{
var sendingLC:LocalConnection = new LocalConnection();
sendingLC.send("_myConnect", 'writeFile', "C:/Users/Andwhy/",getTempTextBA(),"myFileName.txt");
sendingLC.addEventListener(StatusEvent.STATUS, onStatus);
}
private function getTempTextBA():ByteArray
{
var retBA:ByteArray = new ByteArray;
var str:String = "저장한 Date는\n\r" + new Date();
retBA.writeMultiByte(str, "UTF-8");
return retBA;
}
private function onStatus(event:StatusEvent):void {
switch (event.level) {
case "status":
trace("LocalConnection.send() succeeded");
break;
case "error":
trace("LocalConnection.send() failed");
break;
}
}
}
}

위 예시 샘플처럼 사용하시면 됨니다..
다른 디버깅툴처럼 static 매소드를 만들어서 모아놓을껄 그랬나??ㅎㅎㅎ


헌데 이걸 실무에서 쓸일이 있을까요???
만들면서 생각난건데...air로 간단한 메모장 프로그램 만들어서 배포하고...이걸 이용해서 특정페이지에서 컴터에 바이러스를 심을수도 있겠는데요...
신고
posted by andwhy

티스토리 툴바