我正在尝试在目录中搜索一些文件名,并希望输出找到的每个文件。文件名列在“ 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}");
});
}
}
}
我不知道为什么会这样,或者是什么原因。
答案 0 :(得分:0)
我现在自己解决了这个问题,如果有人遇到类似问题,就写这个。
该文件已删除,上面的代码仍然有效。 问题是Windows VirtualStore。该文件的旧版本中有一个副本。
之所以起作用,是因为优先处理VirtualStore中的数据。在我从那里删除文件的那一刻,它按预期运行。