gpt4 book ai didi

c# - 在 C# 中缓存 FileInfo 属性

转载 作者:可可西里 更新时间:2023-11-01 08:47:32 33 4
gpt4 key购买 nike

来自MSDN documentation对于 FileInfo.Name 属性,我看到该属性的数据在第一次被调用时被缓存,并且只会在随后使用 Refresh 方法进行更新。

我有以下问题,但我在文档中找不到或不太清楚:

  1. 所有属性的数据是否同时缓存?

  2. Refresh 方法是在创建 FileInfo 时调用,还是仅在第一次调用属性时调用?

  3. 如果我调用一处特性,例如Name 属性,它被称为 Refresh,将调用不同的属性,例如DirectoryName 属性,第一次导致它再次调用 Refresh,还是仅由整个类中访问的第一个属性调用(参见问题 # 1)?

  4. 我可以通过手动调用 Refresh 来预缓存所有属性吗? (假设它没有在构建对象时预先缓存)

  5. 是否手动调用 Refresh 导致属性为 pre-cached ,例如CreationTime,也要刷新?

最佳答案

  1. 我猜是的。 FileInfo 只获取您之前获取的属性似乎有点弄巧成拙的“优化”,尤其是当它们可以(并且可能)全部在 one API call 中获取时。 .

  2. 事实上,文档调用了 DirectoryInfo 方法来为已经缓存的 FileInfo 提供服务,这非常强烈地(无论如何对我而言)暗示简单地构造一个FileInfo 不缓存任何内容。这是有道理的——如果你直接构造一个 FileInfo,它可能引用一个尚不存在的文件(例如,你打算创建它),而所有返回缓存 的方法>FileInfo 指的是快照时存在的文件,假设您将至少使用其中的一些

  3. 不,根据我对问题 1 的回答。这就是 Refresh 方法存在的原因。

  4. 我会这样想(见答案 1)。

  5. 是的。见答案 3。

关于c# - 在 C# 中缓存 FileInfo 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6333891/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com