본문 바로가기

Silverlight

IsolatedStorage 에 대해서 ...

개요

이번 시간에는 IsolatedStorage 에 대해서 쓰도록 해보겠습니다.  IsolatedStorge는 실버라이트 에서 User 컴퓨터에 1M 정도의  저장소를 가질수 있도록 해주는 것이지요. 사용자의 컴퓨터에 어떤 이상한 곳(-_-..;;) 에 저장을 해주더라구요. 머 쓰임새는 여러가지로 쓸수 있겠죠. 게임을 만드셨으면 세이브 내용을 저장할수도 있을테고 로그를 저장시켜줄수도 있을테고요. 아참, 물론 1M 이상의 저장소를 쓸수도 있는데요 1M 이상을 사용 하기 위해서는 사용자의 동의가 필요하다고 하네요 ㅎㅎ

자 이제~~ 간단한 소스를 통해서 더 자세히 알아 보도록 하겠습니다.

실행화면

                          ->                        

머 그냥;;; 간단하게 한번 들어올때 마다 IsolatedStorage 에 의해 저장된 파일에서 값을 불러와서 뿌려주고 그 값에다가 1을 더해서 다시 저장 하는 내용 입니다.

Tip

소스분석은 내용이 쉬우므로 그냥 소스에 주석으로 처리 하기로 하구요 그것 말고 실버라이트의 쪼잔함(?) 에 대해서 말해 볼까 합니다.

파일을 불러온후 원래 있던 파일 내용에 새로운 내용을 추가 하기 위해서 Append 모드로 사용 하기 위해서 제가 이렇게 했었습니다.
using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream(TodayLogFileName, FileMode.Append, file))

파일 모드를 Append 로 해서 TodayLogFileName 라는 파일 에 글 쓰기를 할려고 했었지요 그러자!!!!

요딴 에러를 살포시 때려주시더군요!!! 분명히 머 중간에 이런저런 삽질 끝에 알아낸 바로는
using (IsolatedStorageFileStream stream = new IsolatedStorageFileStream(TodayLogFileName, FileMode.Append, FileAccess.Write, file))
파일 억세스를 .Write 로 명시적으로 지정을 해주면 에러가 발생하지 않더군요... 머 Append 같은건 당연히 write 속성일텐데.. 그리고 어차피 저걸 에러로 때려줄꺼면 파일억세스를 무조건 받게해주던지.... 3개만 받아도 돌아갈것처럼 해놓고는 사람을 속이다니.. 후후

머 아무튼 ~ Append 를 사용할실떄는 파일억세스를 꼭 명시해주시는 센스를 발휘해 주세요~~>_<b
머 Open이나 Create 같은 경우는 안해줘도 잘되더군요~~ ㅎㅎ

소스
참고로 소스에서는 IsolatedStorage 를 using 을 안쓰고 사용했는데 using을 써서 사용해주면 dispose를 자동으로 해준다고 하는군요 그러므로 using 을 사용해서 쓰세용~~