0

所以问题是我声明变量并在方法开始时打开流:

    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)。

4

1 回答 1

0

在大多数情况下,您需要在文件中看到结果之前调用tw.Flush()and tw.Close()(或只是 wrap new StreamWriter(..)in语句)。using (...)

即使它似乎开始使用其他文件路径(正如您评论的那样) - 没有魔法(至少在编程中) - 如果没有适当的Flush/ ,它总有一天会失败Dispose

于 2013-04-12T09:46:46.033 回答