Почему fileysteminfo.refresh не обновляет временные метки после удаления файловC#

Место общения программистов C#
Anonymous
Почему fileysteminfo.refresh не обновляет временные метки после удаления файлов

Сообщение Anonymous »

Здесь есть несколько сообщений, объясняющих поведение кэширования файловой системы и класса Fileinfo , например, этот. Но когда запускается следующий код, < /p>

Код: Выделить всё

static void Main(string[] args)
{
var appFolder = Path.GetDirectoryName(Environment.ProcessPath)!;
var path = Path.Combine(appFolder, "a.txt");

var fi = new FileInfo(path);

fi.Create().Close();
fi.Refresh();

PrintFileInfo(fi);

// Delete here OR using external file manager
fi.Delete();
fi.Refresh();
Console.WriteLine("File deleted" + Environment.NewLine);

PrintFileInfo(fi);
}

private static void PrintFileInfo(FileInfo fInfo)
{
Console.WriteLine($"Name: {fInfo.Name}");
Console.WriteLine($"File exists?: {fInfo.Exists}");
Console.WriteLine(fInfo.LastWriteTime.ToString());

Console.WriteLine();
}
Я бы ожидал после удаления файла и обновления () снова называется значение TastLwriteTime будет сброшен обратно в 1601 год, как если бы файл никогда не существовал в первую очередь. Однако он по -прежнему возвращает DateTime из созданного (и теперь удаленного) файла.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... e-deletion

Вернуться в «C#»