C#中File FileInfo 和Directory DirectoryInfo 类的区别

2023-11-16

老师在讲C#文件操作的时候讲的个类,功能类似,但用法有区别。他们都存在于systerm.IO命名空间下。

File和Directory的方法都是静态方法。FileInfo和DirectoryInfo的方法都是普通方法。老师建议是如果你要在某个文件上多次进行IO操作,最好使用2个Info类,如果只是操作1、2次操作,最好使用静态方法的类。

我自认为是如下原因,并经考证

静态方法每次对文件进行操作过程是:静态方法存在于栈头,它是由类调用,然后寻找需要操作的文件。寻找需要操作文件的过程是个IO过程,耗时比较长。但它不必要到堆区去遍历实例化新对象。

普通方法是由当时的对象调用,需要创建对象,new一个,(静态方法不需要此过程)但如果操作次数多的话,普通方法就不需要再次去执行不必要而且耗时的IO操作,就能整体提速!

所以执行方法的次数也就能决定了使用哪个类的最佳选择。

当然,我可能忽略了一点,那就是File FileInfo     是对文件进行操作,而Directory DirectoryInfo 是对文件夹进行操作。。。。。

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

C#中File FileInfo 和Directory DirectoryInfo 类的区别 的相关文章

  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 使用 x509 证书签署 json 文档或字符串

    如何使用 x509 证书签署 json 文档或字符串 public static void fund string filePath C Users VIKAS Desktop Data xml Read the file XmlDocum
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • WPF/C# 将自定义对象列表数据绑定到列表框?

    我在将自定义对象列表的数据绑定到ListBox in WPF 这是自定义对象 public class FileItem public string Name get set public string Path get set 这是列表
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况

随机推荐

  • angularjs ajax header,AngularJS发送异步Get/Post请求方法

    1 在页面中加入AngularJS并为页面绑定ng app 和 ng controller 2 添加必要的控件并绑定相应的事件 get param post Get Post 3 在JS脚本中发送进行Get Post请求 get scope
  • keras 入门:卷积神经网络实现 MNIST 手写数字识别

    keras 入门 卷积神经网络实现 MNIST 手写数字识别 手写数字识别问题作为机器学习领域中的一个经典问题 本文介绍如何使用 keras 构建卷积神经网络模型实现 MNIST 手写数字识别 文本代码只需更换训练集目录 修改图片输入尺寸和
  • UVA-140 带宽 题解答案代码 算法竞赛入门经典第二版

    GitHub jzplp aoapc UVA Answer 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 把输入的这些结点进行一个全排列 然后找出带宽最少的组合 其实输入给出的数据量并不大 最多8个结点 不剪枝的话也就是8 个组合 应该
  • benchmark TPC-H postgreSQL

    写在前面 个人对TPCH benchma的理解 我接到这个任务的时候 描述是这样的 呀 用benchMarke生成TPC H然后测试一下 我第一反应就是benchMark是什么 TPCH是什么 现在把这个弄完一遍后来说一下我的理解 首先什么
  • windows查看WIFI无线网络密码

    方法一 通过查看无线属性查询 1 首先 点击电脑右下角的WiFi的图标 选择 打开网络和internet设置 或者选择打开设置 点击 更改适配器选项 2 选中无线网 查看此连接的状态 3 查看无线属性 4 然后选择上方的安全 选中显示字符
  • vue el-table 行排序 + 拖拽排序 简单粗暴

    1 行排序 HTML
  • mmdetection 报错 cats = self.dataset['categories'] KeyError: 'categories'

    如上图 报错 原因 coco训练集中没有categories字段 即数据集的标注json文件不对 解决方案 请参照coco数据集格式
  • 【华为OD统一考试A卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • PCL MeanShift点云聚类(C++详细过程版)

    目录 一 算法原理 1 原理概述 2 实现流程 3 参考文献 二 代码实现 三 结果展示 四 测试数据 本文由CSDN点云侠原创 爬虫网站请自重原文链接 一 算法原理 1 原理概述 均值漂移算法是一种非参数聚类技术 它不需要预先知道聚类的数
  • HTML、PHP实战:搭建一个网页登录页面。

    一 实验环境 MySQL5 7 26 FTP0 9 60 Apache2 4 39 我这里用的是PHPstudy小皮一键搭建的 数据库 二 登录页面 登录页面前端代码 文件名 denglu html
  • 人工智能学习笔记(一)Agent

    智能agent 开篇前言 agent的分类 1 简单反射agent 2 基于状态的反射agent 3 基于目标的agent 4 基于效用的agent 5 学习agent Exploration vs Exploitation 开篇前言 这段
  • 一文读懂什么是DHCP以及DHCP的功能特点

    随着企业中网络结构的日益复杂 接入终端的急剧增加 传统的IP分配方式已经无法满足日常工作需求 DHCP的出现有效解决了IP地址分配难题 本文中科三方针对什么是DHCP以及DHCP的功能特点做下介绍 什么是DHCP DHCP 全称Dynami
  • Python+Excel筛选未提交人员

    起因 学校给了表格让我们班长统计信息 可以用腾讯大大的TIM协作办公 让大家自己填 感觉方便了很多 然而 信息一旦变多而且顺序又没有固定 到后期想要知道未填信息的同学 这就难受了 只能找到班级名单 一个一个对照着找出未提交人员 日后此类事情
  • OCR入门教程系列(一):OCR基础导论

    作者简介 CSDN 阿里云人工智能领域博客专家 新星计划计算机视觉导师 百度飞桨PPDE 专注大数据与AI知识分享 公众号 GoAI的学习小屋 免费分享书籍 简历 导图等 更有交流群分享宝藏资料 关注公众号回复 加群 或 链接 加群 专栏推
  • 【LVGL学习笔记】image图像相关接口

    数据结构如下 Data of image typedef struct lv obj t obj const void src 图像源 指向数组 文件或符号的指针 lv point t offset lv coord t w 宽度 lv c
  • 计算机硬盘模式,硬盘三种模式的含义-电脑自学网

    硬盘三种模式的含义 NORMAL 普通模式 是最早的IDE方式 以此方式访问BIOS和IDE控制器对参数不做任何转换 该模式支持的最大柱面数为1024 最大磁头数为16 最大扇区为63 每个扇区字节数为512 因此这种模式所支持的硬盘最大容
  • Open3D点云处理算法最全合集

    Open3D点云处理算法最全合集 致力于搜集可运行 可视化较好的Open3D算法 持续更新中 1 Open3D 点云读取及可视化 离群点去除 2 Open3D 点云体素格下采样 3 Open3D 点云KdTree建立 3种近邻搜索及结果可视
  • 系统开发与运行

    系统开发与运行 系统分析与设计 需求分析 需求工程 结构化分析与设计 测试基础知识 系统运行与维护 软件架构介绍 系统分析概述 系统分析是一种问题求解技术 它将一个系统分解成各个组成部分 目的是研究各个部分如何工作 交互 以实现其系统目标
  • set_new_handler(0)是什么意思?有什么用?

    出自 STL源码剖析 第45页中有一行代码set new handler 0 源代码 inline T allocate ptrdiff t size T std set new handler 0 T tmp T operator new
  • C#中File FileInfo 和Directory DirectoryInfo 类的区别

    老师在讲C 文件操作的时候讲的个类 功能类似 但用法有区别 他们都存在于systerm IO命名空间下 File和Directory的方法都是静态方法 FileInfo和DirectoryInfo的方法都是普通方法 老师建议是如果你要在某个