来自MSDN 文档为了FileInfo.Name
属性,我看到该属性的数据在第一次调用时被缓存,并且仅在随后使用Refresh
method.
我有以下问题,但在文档中找不到或不太清楚:
所有属性的数据是否同时缓存?
Is the Refresh
创建时调用的方法FileInfo
,或者仅在第一次调用属性时?
如果我调用了一个属性,例如这Name
属性,它被称为Refresh
,将调用不同的属性,例如这DirectoryName
属性,第一次导致它调用Refresh
再次,或者它仅由整个类中访问的第一个属性调用(参见问题#1)?
我可以通过调用预先缓存所有属性吗Refresh
手动? (假设它没有在对象构造时预先缓存)
是否打电话Refresh
手动导致的属性是预缓存, e.g. CreationTime
,也要刷新?
猜测是的。这似乎有点弄巧成拙的“优化”FileInfo
仅获取您之前获取过的属性,尤其是当它们可以(并且可能)全部获取时一次 API 调用.
文档指出的事实DirectoryInfo
提供已缓存的方法FileInfo
s 非常强烈地建议(无论如何对我来说)简单地构建一个FileInfo
不缓存任何内容。这是有道理的 - 如果你构建一个FileInfo
直接地,它可能引用一个尚不存在的文件(例如,您计划创建它),而返回缓存的所有方法FileInfo
s 指的是快照时存在的文件,假设您至少要使用some其中。
不,根据我对问题 1 的回答。这就是 Refresh 方法存在的原因。
我想是这样的(见答案1)。
是的。参见答案3。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)