在 C# 中缓存 FileInfo 属性

2023-11-21

来自MSDN 文档为了FileInfo.Name属性,我看到该属性的数据在第一次调用时被缓存,并且仅在随后使用Refresh method.

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

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

  2. Is the Refresh创建时调用的方法FileInfo,或者仅在第一次调用属性时?

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

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

  5. 是否打电话Refresh手动导致的属性是预缓存, e.g. CreationTime,也要刷新?


  1. 猜测是的。这似乎有点弄巧成拙的“优化”FileInfo仅获取您之前获取过的属性,尤其是当它们可以(并且可能)全部获取时一次 API 调用.

  2. 文档指出的事实DirectoryInfo提供已缓存的方法FileInfos 非常强烈地建议(无论如何对我来说)简单地构建一个FileInfo不缓存任何内容。这是有道理的 - 如果你构建一个FileInfo直接地,它可能引用一个尚不存在的文件(例如,您计划创建它),而返回缓存的所有方法FileInfos 指的是快照时存在的文件,假设您至少要使用some其中。

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

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

  5. 是的。参见答案3。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C# 中缓存 FileInfo 属性 的相关文章

随机推荐

  • document.querySelectorAll的返回类型是什么

    假设我有以下列表 ol li Cookies ol li Coffee li li Milk li li class test1 Chocolate li ol 我在 html 的末尾执行此选择 var nodes document que
  • 如何将 JSON 字符串转换为数组

    我想做的是 从 php 中的文本区域获取 JSON 作为输入 使用此输入并将其转换为 JSON 并将其传递给 php curl 来发送请求 我从 api 的 get 获取 php 这个 json 字符串我想传递给 json 但它没有转换为数
  • 从长远来看值得使用 Redux-Saga 吗? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 Redux Saga 是一个 Redux 副作用管理器 据说已被弃用 并且不再
  • 使用 angularfire2 和 firestore 创建自动完成搜索?

    我正在尝试为我的网络应用程序构建一个简单的搜索功能 有关于如何使用实时数据库创建它的文档 我需要做出哪些改变才能使这项工作正常进行火库 本教程取自这里https angularfirebase com lessons autocomplet
  • Python 读取输入时出现 EOF 错误

    n input dum input d for i in range 0 n 1 x raw input x x split d int x 0 int x 1 array d keys for key in d keys if d key
  • 没有完整命名空间的类型引用

    有两个打字稿文件 A ts export class Person public name string constructor and B ts import A module A var p A Person 到目前为止一切正常 但是
  • 处理一元运算符的中缀到后缀算法

    算法的 I p 将是这样的表达式 a b a b c 即标准 C 编译器支持的任何表达式 现在我已经将输入格式化为标记流 标记包含信息 无论是运算符还是操作数 该算法应该接受这个并给我一个可以计算的后缀表达式 如果我使用标准转换算法 我无法
  • 在 Laravel 中访问 $_GET 值的最佳实践是什么?

    有没有更好的访问方式 GET而不是 Laravel 中的变量本身 或者就是这样 我需要 API 的多个参数 例如 users q keyword order desc limit 5 是否有更干净 更安全且类似 Laravel 的方式来访问
  • 使用 Azure Functions 在本地存储状态

    Azure Functions 是否提供本地 状态 存储来消除调用其他服务 例如存储 docDB 等 的需要 功能基于 Azure 应用服务构建 提供存储持久文件的功能 例如您可以将文件存储在 HOME data SomeFolderOfY
  • 在 Equinox 中,是否可以将 OSGi 包标记为从其包含功能的 p2.inf 开始?

    我有一个 Eclipse 功能 其中包含多个捆绑包 我想告诉 p2 在安装该功能时将其中一个捆绑包标记为已启动 这可以使用捆绑包自己的 META INF p2 inf 来实现 如下所示 instructions configure mark
  • Json.NET:反序列化嵌套 Json

    如何反序列化此 Json 字符串上的 Items 类部分 Buddies count 1 items id 5099207ee4b0cfbb6a2bd4ec firstName Foo lastName Bar image url size
  • Buildozer 未能执行最后一个命令

    当我尝试在我的设备上构建 推送并自动运行 apk 时 使用buildozer android debug deploy run它显示这些错误 Check configuration tokens Ensure build layout Ch
  • notify可以多次唤醒同一个线程吗?

    想象一下 Java 中有一个典型的生产者 消费者模式 为了提高效率 你想使用notify 并不是notifyAll 当一个新元素被添加到队列中时 如果两个生产者线程调用notify 是否可以保证两个不同的等待消费者线程会被唤醒 或者可以是两
  • Windows 中相当于命令“date+%s”的是什么

    我正在编写一个批处理脚本 我需要 unix 时间 在linux下很容易 但我不知道如何在windows下做到这一点 这是一个适用于任何区域设置的本机批处理解决方案 它使用 WMIC 以与区域设置无关的方式获取当前本地时间 其他一切都是字符串
  • CSS中的蛇形对齐

    我一直在努力解决 CSS 中的以下问题 我有任意数量的项目 跨度或 div 我想将它们以蛇状图案包装在容器内 我的意思是 如果我有 10 个项目 每个项目的宽度为 20 像素 我希望它们在 60 像素宽的容器中显示如下 0 1 2 5 4
  • setNeedsDisplay并不总是调用drawRect

    我在自定义表格单元格中有一个自定义视图 每次更改自定义视图上的特定属性时 我都会调用 self setNeedsDisplay 这会重绘视图 void drawRect CGRect rect 该属性在表视图委托中设置tableView c
  • 如何在 dart 中创建多个构造函数?

    我想通过调用具有不同数量参数的构造函数来创建不同的对象 我怎样才能在 Dart 中实现这一目标 class A String b c d A this b this c A this b this c this d See 构造函数部分飞镖
  • 如何将 ctrl+c 发送到 C# 中的进程?

    我正在为命令行可执行文件编写一个包装类 该exe接受来自的输入stdin直到我击中Ctrl C在命令提示符 shell 中 在这种情况下 它将输出打印到stdout基于输入 我想模拟一下Ctrl C按 C 代码 将终止命令发送到 NETPr
  • 检测范围大小的编译时常数

    请注意 在提出此问题后 缺陷报告更改了下面提到的行为 见问题末尾 编译器资源管理器链接 考虑以下 Variant 1 template
  • 在 C# 中缓存 FileInfo 属性

    来自MSDN 文档为了FileInfo Name属性 我看到该属性的数据在第一次调用时被缓存 并且仅在随后使用Refresh method 我有以下问题 但在文档中找不到或不太清楚 所有属性的数据是否同时缓存 Is the Refresh创