StreamReader读取已删除的文件

时间:2019-05-10 09:31:09

标签: c#

我正在尝试在目录中搜索一些文件名,并希望输出找到的每个文件。文件名列在“ files.txt”中。

奇怪的是,我使用Windows资源管理器从磁盘上删除了文件,但是它仍然输出旧文件的内容。

using (StreamReader reader = new StreamReader(new FileStream(@"C:\Program Files (x86)\Test\files.txt", FileMode.Open)))
{
    while (!reader.EndOfStream)
    {
        var line = reader.ReadLine();
        Console.WriteLine($"ReadLine: \"{line}\"");
        if (!string.IsNullOrWhiteSpace(line))
        {           
            Directory.GetFiles(folder, line, SearchOption.AllDirectories).ToList()
            .ForEach(s =>
            {
                Console.WriteLine($"FileFound: {s}");
             });
        }
    }
}

我不知道为什么会这样,或者是什么原因。

1 个答案:

答案 0 :(得分:0)

我现在自己解决了这个问题,如果有人遇到类似问题,就写这个。

该文件已删除,上面的代码仍然有效。 问题是Windows VirtualStore。该文件的旧版本中有一个副本。

之所以起作用,是因为优先处理VirtualStore中的数据。在我从那里删除文件的那一刻,它按预期运行。