FileSystemInfo.Refresh()函数有什么用途?

kom*_*bsh -1 c# filesystems

我想使用该函数FileSystemInfo.Refresh()..但我想知道如果我们调用这个函数会发生什么.

Ale*_*kov 5

MSDN - FileSystemInfo.Refresh

刷新对象的状态.

调用的原因是获取文件的"最新"属性.如果信息在磁盘上更新,则原始对象可能具有过时数据.即MSDN明确调出属性大小写:

在尝试获取属性信息之前,必须调用Refresh.

显示陈旧性的示例:

// create a file at this location
var fileName = @"E:\Temp\attr.txt";

var fi = new FileInfo(fileName);
Console.WriteLine("Attributes: {0}", fi.Attributes); // Archive
var fi2 = new FileInfo(fileName);
fi2.Attributes = fi2.Attributes | FileAttributes.ReadOnly;
Console.WriteLine("New Attributes: {0}", fi2.Attributes); // Archive, ReadOnly
Console.WriteLine("Stale attributes: {0}", fi.Attributes); // Archive
fi.Refresh();
Console.WriteLine("Refreshed attributes: {0}",fi.Attributes);// Archive, ReadOnly
Run Code Online (Sandbox Code Playgroud)