2014-05-19 2 views
0

아이폰의 임시 폴더에 리소스로 애플 리케이션 번들에 포함 된 파일을 복사하려고합니다.System.UnauthorizedAccessException없이 응용 프로그램 번들에서 다른 디렉토리로 파일을 복사하는 방법은 무엇입니까?

System.UnauthorizedAccessException : 경로 "액세스/개인의/var/모바일/응용 프로그램/B763C127-9882-4F76-8860-204AFEA8DD68 /이 시뮬레이터에서 작동하지만, 장치에 나는 예외가 Client_iOS.app/testbundle.zip " 이 거부되었습니다.

아래 코드는 소스 파일을 열 수 없습니다.

using(var sourceStream = File.Open("./demobundle.zip", FileMode.Open)) 
{ 
    sourceStream.CopyTo(targetStream); 
} 

파일을 대상 스트림으로 복사하는 올바른 방법은 무엇입니까?

답변

3

왜 내가 여기서 물어 본 후에 즉시 내 질문에 대한 답을 찾을 수 있습니까? :-)

하나는 파일 액세스 모드를 지정해야합니다. Read으로 설정하면 작동합니다. 기본값은 쓰기 모드 인 것 같고 명백하게 불가능합니다.

using(var sourceStream = File.Open("./demobundle.zip", FileMode.Open, FileAccess.Read)) 
{ 
    sourceStream.CopyTo(targetStream); 
} 
+1

['File.Open' (http://msdn.microsoft.com/en-us/library/y973b725%28v=vs.110%29.aspx) 읽기위한 'UnauthorizedAccessException'를 반환 'FileAccess.Read'를 명시 적으로 추가하지 않으면 파일 만 남게됩니다. – admdrew

+1

Gendarme이 항상 'FileMode'와 'FileAccess'를 지정하도록 요구하는 규칙이있는 이유 중 하나입니다. 기본값은 개발자가 기대하는 것이 아니며 종종 실행 (고객 또는이 경우 장치) 환경에 따라 다릅니다. – poupou

관련 문제