码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C# 之 FileInfo API参考


    命名空间:

    System.IO

    程序集:

    System.Runtime.dll

    提供用于创建、复制、删除、移动和打开文件的属性和实例方法,并且帮助创建 FileStream 对象。 此类不能被继承。

    C#复制

    public sealed class FileInfo : System.IO.FileSystemInfo

    继承

    Object

    MarshalByRefObject

    FileSystemInfo

    FileInfo

    示例

    以下示例演示了 FileInfo 类的一些主要成员。

    首次检索属性时, FileInfo 调用 Refresh 该方法并缓存有关该文件的信息。 在后续调用中,必须调用 Refresh 以获取信息的最新副本。

    C#复制

    1. using System;
    2. using System.IO;
    3. class Test
    4. {
    5. public static void Main()
    6. {
    7. string path = Path.GetTempFileName();
    8. var fi1 = new FileInfo(path);
    9. // Create a file to write to.
    10. using (StreamWriter sw = fi1.CreateText())
    11. {
    12. sw.WriteLine("Hello");
    13. sw.WriteLine("And");
    14. sw.WriteLine("Welcome");
    15. }
    16. // Open the file to read from.
    17. using (StreamReader sr = fi1.OpenText())
    18. {
    19. var s = "";
    20. while ((s = sr.ReadLine()) != null)
    21. {
    22. Console.WriteLine(s);
    23. }
    24. }
    25. try
    26. {
    27. string path2 = Path.GetTempFileName();
    28. var fi2 = new FileInfo(path2);
    29. // Ensure that the target does not exist.
    30. fi2.Delete();
    31. // Copy the file.
    32. fi1.CopyTo(path2);
    33. Console.WriteLine($"{path} was copied to {path2}.");
    34. // Delete the newly created file.
    35. fi2.Delete();
    36. Console.WriteLine($"{path2} was successfully deleted.");
    37. }
    38. catch (Exception e)
    39. {
    40. Console.WriteLine($"The process failed: {e.ToString()}");
    41. }
    42. }
    43. }

    此示例生成类似于以下内容的输出。

    复制

    1. Hello
    2. And
    3. Welcome
    4. C:\Users\userName\AppData\Local\Temp\tmp70AB.tmp was copied to C:\Users\userName\AppData\Local\Temp\tmp70CB.tmp.
    5. C:\Users\userName\AppData\Local\Temp\tmp70CB.tmp was successfully deleted.

    注解

    将 FileInfo 类用于典型的操作,例如复制、移动、重命名、创建、打开、删除和追加到文件。

    如果要对同一文件执行多个操作,则使用 FileInfo 实例方法(而不是类的相应静态方法 File )可能更高效,因为安全检查并不总是必要的。

    创建或打开文件时, FileInfo 许多方法都会返回其他 I/O 类型。 可以使用这些其他类型的进一步操作文件。 有关详细信息,请参阅特定FileInfo成员,例如Open、、OpenReadOpenText、CreateText或Create。

    默认情况下,向所有用户授予对新文件的完整读/写访问权限。

    下表介绍了用于自定义各种 FileInfo 方法行为的枚举。

    枚举描述
    FileAccess指定对文件的读取和写入访问权限。
    FileShare指定已使用的文件允许的访问级别。
    FileMode指定是否保留或覆盖现有文件的内容,以及创建现有文件的请求是否会导致异常。

     备注

    在接受路径作为输入字符串的成员中,该路径的格式必须良好或引发异常。 例如,如果路径完全限定,但以空格开头,则路径不会在类的方法中修整。 因此,路径格式不正确,并引发异常。 同样,路径或路径的组合不能完全限定两次。 例如,在大多数情况下,“c:\temp c:\windows”也会引发异常。 使用接受路径字符串的方法时,请确保路径格式良好。

    在接受路径的成员中,路径可以引用文件或仅引用目录。 指定的路径还可以引用服务器和共享名称的相对路径或通用命名约定 (UNC) 路径。 例如,以下所有路径都是可接受的路径:

    • C# 中的“c:\\MyDir\\MyFile.txt”,或Visual Basic中的“c:\MyDir\MyFile.txt”。

    • C# 中的“c:\\MyDir”或Visual Basic中的“c:\MyDir”。

    • C# 中的“MyDir\\MySubdir”或Visual Basic中的“MyDir\MySubDir”。

    • C# 中的“\\\\MyServer\\MyShare”或Visual Basic中的“\\MyServer\MyShare”。

    该 FileInfo 类提供以下属性,可用于检索有关文件的信息。 有关如何使用每个属性的示例,请参阅属性页。

    • 该 Directory 属性检索一个对象,该对象表示文件的父目录。

    • 该 DirectoryName 属性检索文件父目录的完整路径。

    • 该 Exists 属性在对文件执行操作之前检查是否存在文件。

    • 该 IsReadOnly 属性检索或设置一个值,该值指定是否可以修改文件。

    • 检索 Length 文件的大小。

    • 检索 Name 文件的名称。

    构造函数

    FileInfo(String)

    初始化作为文件路径的包装的 FileInfo 类的新实例。

    字段

    FullPath

    表示目录或文件的完全限定目录。

    (继承自 FileSystemInfo)
    OriginalPath

    最初由用户指定的目录(不论是相对目录还是绝对目录)。

    (继承自 FileSystemInfo)

    属性

    Attributes

    获取或设置当前文件或目录的特性。

    (继承自 FileSystemInfo)
    CreationTime

    获取或设置当前文件或目录的创建时间。

    (继承自 FileSystemInfo)
    CreationTimeUtc

    获取或设置当前文件或目录的创建时间,其格式为协调世界时 (UTC)。

    (继承自 FileSystemInfo)
    Directory

    获取父目录的实例。

    DirectoryName

    获取表示目录的完整路径的字符串。

    Exists

    获取指示文件是否存在的值。

    Extension

    获取文件名的扩展名部分,包括前导点 。 即使它是整个文件名,或者不存在扩展名的空字符串。

    (继承自 FileSystemInfo)
    FullName

    获取目录或文件的完整目录。

    (继承自 FileSystemInfo)
    IsReadOnly

    获取或设置确定当前文件是否为只读的值。

    LastAccessTime

    获取或设置上次访问当前文件或目录的时间。

    (继承自 FileSystemInfo)
    LastAccessTimeUtc

    获取或设置上次访问当前文件或目录的时间,其格式为协调世界时 (UTC)。

    (继承自 FileSystemInfo)
    LastWriteTime

    获取或设置上次写入当前文件或目录的时间。

    (继承自 FileSystemInfo)
    LastWriteTimeUtc

    获取或设置上次写入当前文件或目录的时间,其格式为协调世界时 (UTC)。

    (继承自 FileSystemInfo)
    Length

    获取当前文件的大小(以字节为单位)。

    LinkTarget

    获取位于其中 FullName的链接的目标路径,或者 null 如果此 FileSystemInfo 实例不表示链接。

    (继承自 FileSystemInfo)
    Name

    获取文件名。

    UnixFileMode

    获取或设置当前文件或目录的 Unix 文件模式。

    (继承自 FileSystemInfo)

    方法

    AppendText()

    创建一个 StreamWriter,它向 FileInfo 的此实例表示的文件追加文本。

    CopyTo(String)

    将现有文件复制到新文件,不允许覆盖现有文件。

    CopyTo(String, Boolean)

    将现有文件复制到新文件,允许覆盖现有文件。

    Create()

    创建文件。

    CreateAsSymbolicLink(String)

    创建指向指定pathToTarget位置的符号链接FullName。

    (继承自 FileSystemInfo)
    CreateObjRef(Type)

    创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。

    (继承自 MarshalByRefObject)
    CreateText()

    创建写入新文本文件的 StreamWriter。

    Decrypt()

    使用 Encrypt() 方法解密由当前帐户加密的文件。

    Delete()

    永久删除文件。

    Encrypt()

    将某个文件加密,使得只有加密该文件的帐户才能将其解密。

    Equals(Object)

    确定指定对象是否等于当前对象。

    (继承自 Object)
    GetHashCode()

    作为默认哈希函数。

    (继承自 Object)
    GetLifetimeService()

    已过时。

    检索控制此实例的生存期策略的当前生存期服务对象。

    (继承自 MarshalByRefObject)
    GetObjectData(SerializationInfo, StreamingContext)

    设置带有文件名和附加异常信息的 SerializationInfo 对象。

    (继承自 FileSystemInfo)
    GetType()

    获取当前实例的 Type。

    (继承自 Object)
    InitializeLifetimeService()

    已过时。

    获取生存期服务对象来控制此实例的生存期策略。

    (继承自 MarshalByRefObject)
    MemberwiseClone()

    创建当前 Object 的浅表副本。

    (继承自 Object)
    MemberwiseClone(Boolean)

    创建当前 MarshalByRefObject 对象的浅表副本。

    (继承自 MarshalByRefObject)
    MoveTo(String)

    将指定文件移到新位置,提供要指定新文件名的选项。

    MoveTo(String, Boolean)

    将指定文件移动到新位置,提供指定新文件名和覆盖目标文件(如果它已存在)的选项。

    Open(FileMode)

    在指定的模式中打开文件。

    Open(FileMode, FileAccess)

    用读、写或读/写访问权限在指定模式下打开文件。

    Open(FileMode, FileAccess, FileShare)

    用读、写或读/写访问权限和指定的共享选项在指定的模式中打开文件。

    Open(FileStreamOptions)

    使用指定的创建模式、读/写和共享权限初始化类的新实例 FileStream ,访问其他 FileStreams 可以具有同一文件、缓冲区大小、其他文件选项和分配大小。

    OpenRead()

    创建一个只读的 FileStream。

    OpenText()

    创建使用从现有文本文件中读取的 UTF8 编码的 StreamReader。

    OpenWrite()

    创建一个只写的 FileStream。

    Refresh()

    刷新对象的状态。

    (继承自 FileSystemInfo)
    Replace(String, String)

    使用当前 FileInfo 对象所描述的文件替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。

    Replace(String, String, Boolean)

    使用当前 FileInfo 对象所描述的文件替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。 还指定是否忽略合并错误。

    ResolveLinkTarget(Boolean)

    获取指定链接的目标。

    (继承自 FileSystemInfo)
    ToString()

    以字符串形式返回路径。 将 Name 属性用于完整路径。

    扩展方法

    Create(FileInfo, FileMode, FileSystemRights, FileShare, Int32, FileOptions, FileSecurity)

    创建一个新的文件流,确保使用指定的属性和安全设置创建该文件流。

    GetAccessControl(FileInfo)

    返回文件的安全信息。

    GetAccessControl(FileInfo, AccessControlSections)

    返回文件的安全信息。

    SetAccessControl(FileInfo, FileSecurity)

    更改现有文件的安全属性。

    适用于

    产品版本
    .NETCore 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7 Preview 6
    .NET Framework1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
    .NET Standard1.3, 1.4, 1.6, 2.0, 2.1
    UWP10.0
    Xamarin.iOS10.8
    Xamarin.Mac3.0

  • 相关阅读:
    SAP MIRO发票过账报错 发出数量为0
    设计模式-创建型模式
    Android开发常见的报错问题(持续更新记录)
    【C++ 番外】【指针】数组类型的指针,指向数组的指针,数组的元素是指针,这个视频说明白。数组和指针
    sheetJs+xlsx-style——前端实现导出excel表格——设置单元格背景色,居中,自动换行,宽度,百分数展示等
    git 分支管理进阶
    【Python基础】什么是互联网爬虫?
    Logstash同步MySQL数据到ElasticSearch
    在非k8s 环境下 的应用 使用 Dapr Sidekick for .NET
    我试图通过这篇文章,教会你一种阅读源码的方式。
  • 原文地址:https://blog.csdn.net/weixin_42565127/article/details/126245167
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号