这节讲两个实例类,FileInfo和DirectoryInfo两个类,用于操作某个具体的文件或者目录。

FileInfo:

    FileInfo不同于File,它是一个实例类,有一个string类型的构造方法,用于接收文件路径或者url形式的路径:

FileInfo fi=new FileInfo(@"./demo.txt");

实例化后的对象,就有关于这个文件的信息,比如文件名,扩展名等等。上述参数的前缀@符号,用于标识这个字符串为不转义字符串,也就是说反斜线就是一个反斜线,没有转义功能,这样标识比较方便。本节还是使用上节的demo.txt文件和Test文件夹。

下面先展示一下相关代码:

if (fi.Exists)
{
Console.WriteLine(fi.Name);//文件名
Console.WriteLine(fi.Attributes);//文件访问属性
fi.Attributes = FileAttributes.Archive;//设置文件访问类型
Console.WriteLine(fi.CreationTime);//创建时间
Console.WriteLine(fi.CreationTimeUtc);//创建时间(UTC时间)
Console.WriteLine(fi.Extension);//扩展名
Console.WriteLine(fi.FullName);//完整名
Console.WriteLine(fi.LastAccessTime);//最后一次访问时间
Console.WriteLine(fi.LastAccessTimeUtc);
Console.WriteLine(fi.LastWriteTime);//最后一次修改时间
Console.WriteLine(fi.LastWriteTimeUtc);
DirectoryInfo directoryInfo = fi.Directory;//返回包含此文件的目录信息对象
Console.WriteLine(fi.DirectoryName);//目录名
Console.WriteLine(fi.IsReadOnly);//是否是只读
Console.WriteLine(fi.Length);//文件大小
}

输出结果为:

具体介绍一下Attributes属性,这个属性是个读写属性,可以读取文件访问类型,也可以通过FileAttributes这个枚举类,修改访问类型,比如常见的ReadOnly,Hidden。

Directory属性,该文件所在的目录的信息对象,可以通过此对象查看当前目录信息。

FullName属性,返回完整的路径文件名。

Length属性,返回文件大小,也就是字节数,是个long类型的。

 DirectoryInfo:

    它的用法和属性,跟FileInfo差不多,但它有两个专有方法:

DirectoryInfo di=new DirectoryInfo("./");
DirectoryInfo parent = di.Parent;
DirectoryInfo root = di.Root; Console.WriteLine(di.FullName);
Console.WriteLine(parent.FullName);
Console.WriteLine(root.FullName);

 Parent和Root属性,以上代码输出结果为:

Parent属性,返回该目录的目录的信息对象,

Root返回目录所在盘符的目录信息对象。

那么,File,Directory和FileInfo,DirectoryInfo作用都是差不多的,具体在什么时候用呢,静态类的话,因为不需要实例化,所以在单次使用的情景下,可以使用File,Directory,当需要多次使用的话,就可以使用FileInfo,DirectoryInfo。

这是我的公众号二维码,获取最新文章,请关注此号

FileInfo & DirectoryInfo的更多相关文章

  1. File,FileInfo,Directory,DirectoryInfo

    两者的共同点:  一:都用于典型的操作,如复制.移动.重命名.创建.打开.删除和追加到文件   二:默认情况下,将向所有用户授予对新文件的完全读/写访问权限.  两者的区别:   File类是静态类, ...

  2. S2---深入.NET平台和C#编程的完美总结

    1.NET简单解说 l 面向对象提升 OOP(Object Oriented  Programming)面向对象编程 AOP:(Aspache  Oriented Programming):面向切面编 ...

  3. C#路径/文件/目录/I/O常见操作汇总

    文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供 ...

  4. vb.net下载代码

    '后台 Partial Public Class Download2 Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender ...

  5. [C#] CSharp 基本语法

    CSharp Language Specification 一.基础 1.规范: 除常量外,所有变量用驼峰命名方式,其它用帕斯卡命名方式. 2.编译: 首先由csc.exe将cs文件编译成MSIL.当 ...

  6. .net程序员工作两年总结

    (2015年9月) 最近换了工作,面试了很多家公司想总结下,以便以后回顾知道自己是怎么走过来的. 入行背景: 我是半路转行做软件开发的,2011年7月大学专科毕业,大学专业是:机械制造及其自动化:20 ...

  7. LoadAssetAtPath 与 Load 的区别

    一.官方的文档 Resources.LoadAssetAtPath Returns a resource at an asset path (Editor Only). This function a ...

  8. C#路径/文件/目录/I/O常见操作汇总<转载>

    文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供 ...

  9. 【转】C#路径/文件/目录/I/O常见操作汇总

    文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供 ...

随机推荐

  1. 微信小程序应用开发-手动创建

    基础知识: index.wxml的代码为 Html,有很多标签,如等 index.wwss相当于css 即样式 index.js中有很多函数,可自定义 操作步骤: 删除app.json文件中page/ ...

  2. 世界国省市区SQL语句(mysql)

    CREATE TABLE loctionall ( country VARCHAR(40) , provice VARCHAR(40) , city VARCHAR(40) , CONSTRAINT ...

  3. IPFS挖矿靠谱吗?

    IPFS是一个旨在创建持久且分布式存储和共享文件的网络传输协议,前景广阔且实用意义大,为区块链行业提供了一种新的可能.而IPFS挖矿挖出的FIL,则是在IPFS技术的基础上,对维护IPFS网络的用户的 ...

  4. 2021-2-28 Mark-Java Interview Simple

    2021-2-28 Mark-Java Interview Simple 心动时,还没来得及学会勇敢. 勇敢时,我们已在时光里走散. 简介:2021-2-28日Java面试没能脱口而出或是回答得不好的 ...

  5. Hibernate的Dao层通用设计

    hibernate作为一款优秀的数据库持久化框架,在现实的运用中是非常广泛的.它的出现让不熟悉sql语法的程序员能开发数据库连接层成为一种可能,但是理想与现实永远是有差距的.开发过程中如果只使用hql ...

  6. Java中的集合List - 入门篇

    前言 大家好啊,我是汤圆,今天给大家带来的是<Java中的集合List - 入门篇>,希望对大家有帮助,谢谢 简介 说实话,Java中的集合有很多种,但是这里作为入门级别,先简单介绍第一种 ...

  7. 亲测有效JS中9种数组去重方法

    码文不易,转载请带上本文链接,感谢~ https://www.cnblogs.com/echoyya/p/14555831.html 目录 码文不易,转载请带上本文链接,感谢~ https://www ...

  8. OGG-Oracle 集成模式抽取进程,REGISTER DATABASE都做了什么?

    一.学习目标 有同事问OGG技术问题,OGG软件,在oracle数据库中,集成模式抽取进程REGISTER DATABASE,都做了什么操作? 有什么风险? 并且提到了一个抽取进程注册,在瞬时间并发占 ...

  9. BUAAOO第一单元代码分析

    1.HomeWork1 思路 一个主类用于字符串得操作, 一个Poly类用于对一个多项式进行抽象,用Arraylist来对term进行封装.内部含有求导方法,添加并合并同类项的方法,toString方 ...

  10. c++排序相关的参数“cmp“的用法及理解

    对sort函数(需要algorithm头文件),它的cmp可以是"函数",也可以是"对象" bool myfunction (int i,int j) { re ...