2011-05-03 10 views
3

Silverlight 4.0에서 로컬 디스크에 파일을 저장하는 논리를 작성하려고합니다. 나는 그것에 대해 SaveFileDialog 클래스를 사용하고있다. 그것은 잘 작동합니다. 그러나 이미 열어 본 파일을 저장하려고 할 때 처리되지 않은 예외가 발생합니다. 또한 응용 프로그램이 즉시 충돌합니다.Silverlight에서 이미 열려있는 파일로 저장할 때 처리되지 않은 예외가 발생했습니다.

Silverlight 3에서도 비슷한 문제가 발생했습니다. application_unhandledexception 이벤트에서 예외에서 일부 SaveFileStream 텍스트를 검색하여 예외를 삼 켜서이 문제를 없앴습니다. 나는 이것이 Silverlight 4에서 처리 될 것이라고 생각했지만, 지금은 더 나 빠졌다. 해결 방법조차도 현재 작동하지 않습니다.

로직을 SaveFileDialog 로직으로 놓고 IOException (다른 프로세스가 파일을 사용 중입니다)을 여기에 붙였습니다. 그러나 위에서 설명한 예외가 즉시 트리거됩니다.

도움을 주시면 감사하겠습니다.

업데이트 :이 문제는 txt 파일을 사용하지 않고 Excel 파일에서 발생합니다. 나는 이것이 모든 MS 오피스 파일에 대해 발생할 것이라고 생각합니다.

A post about the issue on the official forum

+0

:-) 텍스트 또는 엑셀 파일. Silverlight 4.0.60531.0을 실행 중입니다. 실행중인 항목은 무엇입니까? http://www.silverlightversion.com/ – Bryant

+0

Excel은 파일 핸들을 열어 두어 여러 사용자가 워크 시트를 수정하지 못하게합니다 (* readonly * 모드에서 열리지 않는 한). 예외를 삼키기 위해 사용하고있는 코드를 보여 주시겠습니까? –

답변

1

는 당신이 파일을 저장하는 방법을 물어 봐도 될까요? 스트림이 플러시되고 닫히고 처분됩니까? 예를 들어이 같이

(참고 : 다른 많은이 작업을 수행하기가 말한다 있습니다) :

using (Stream stream = new IsolatedStorageFileStream("somefilename.ext", FileMode.Create, FileAccess.Write, IsolatedStorageFile.GetUserStoreForApplication())) 
{ 
    // Use the stream normally in a TextWriter 
    using (TextWriter writer = new StreamWriter(stream, Encoding.UTF8)) 
    { 
     writer.Flush(); 
     writer.Close(); 
    } 

    stream.Close(); 
} 

그것은이다 희망과 도움을 내가 이것을 재현 할 수 없어요

관련 문제