2013-04-11 2 views
0

사용하여 정확하게 기록되지 않습니다 그래서 문제는 이것이 내가 변수를 선언하고 방법의 시작에서 스트림을 엽니 다지역 정수 변수의 값은 TextWriter를

int i = 0; 
    int FailedToCopyImages = 0; 
    int NumberOfCopiedImages = 0; 
    int PreviouslyCopiedImages = 0; 
    TextWriter tw = new StreamWriter(pathToFile, true); 

가 그럼 난 try-catch-finally 블록에서 몇 가지 물건을 그리고 마침내 내가 가지고있는 부분은 다음과 같습니다.

finally 
      { 
       Console.WriteLine(i); 
       Console.WriteLine(NumberOfCopiedImages); 
       Console.WriteLine(PreviouslyCopiedImages); 
       Console.WriteLine(FailedToCopyImages); 
       tw.WriteLine(" "); 
       tw.WriteLine("All images: " + i + 
        " | Successfully copied: " + NumberOfCopiedImages + 
        " | Previously copied: " + PreviouslyCopiedImages + 
        " | Failed To Copy: " + FailedToCopyImages); 
       tw.WriteLine("--------------End Of Material Images-------------"); 

나는 네 가지 방법으로 이것을 수행하고 올바른 결과를 얻습니다. 여기 콘솔에서 변수가 올바른 값을 보유하고 있지만 txt 파일에서 0을 얻는 것을 볼 수 있습니다.

+0

다른 것이 계속되어야합니다. 'tw.WriteLine ("모든 이미지 :"... ") 줄에 중단 점을 설정하고 로컬 변수의 값이 그 지점에 있는지 확인하십시오. –

+0

그랬습니다 - 값은해야합니다 (0이 아닌 값) – Leron

+0

TextWrite가 일부 캐시를 저장할 수 있습니까? 'tw.WriteLine ("모든 이미지 :"+ i + .. "하지만 여전히 내 txt 파일에서 가져옵니다.) – Leron

답변

0

대부분의 경우 결과를 파일로보기 전에 tw.Flush()tw.Close() (또는 using (...) 문에 new StreamWriter(..))을 사용해야합니다.

다른 파일 경로 (주석으로 말씀 드렸듯이) 작업을 시작한 것 같아도 - 적어도 프로그래밍에서는 마술이 없습니다. - 적절한 Flush/Dispose없이 언젠가는 실패 할 것입니다.

관련 문제