问题是我在方法的开头声明了变量并打开了流
int i = 0;
int FailedToCopyImages = 0;
int NumberOfCopiedImages = 0;
int PreviouslyCopiedImages = 0;
TextWriter tw = new StreamWriter(pathToFile, true);
然后我在try-catch-finally
块中做了一些东西,在' 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)。
在大多数情况下,您需要调用tw.Flush()
和tw.Close()
(或者只是将new StreamWriter(..)
包装在using (...)
语句中)才能在文件中看到结果。
即使它似乎开始与其他文件路径一起工作(正如您所评论的)-没有魔法(至少在编程中)-如果没有适当的Flush
/Dispose
,它总有一天会失败。