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#复制

using System;
using System.IO;

class Test
{
    
    public static void Main()
    {
        string path = Path.GetTempFileName();
        var fi1 = new FileInfo(path);

        // Create a file to write to.
        using (StreamWriter sw = fi1.CreateText())
        {
            sw.WriteLine("Hello");
            sw.WriteLine("And");
            sw.WriteLine("Welcome");
        }	

        // Open the file to read from.
        using (StreamReader sr = fi1.OpenText())
        {
            var s = "";
            while ((s = sr.ReadLine()) != null)
            {
                Console.WriteLine(s);
            }
        }

        try
        {
            string path2 = Path.GetTempFileName();
            var fi2 = new FileInfo(path2);

            // Ensure that the target does not exist.
            fi2.Delete();

            // Copy the file.
            fi1.CopyTo(path2);
            Console.WriteLine($"{path} was copied to {path2}.");

            // Delete the newly created file.
            fi2.Delete();
            Console.WriteLine($"{path2} was successfully deleted.");
        }
        catch (Exception e)
        {
            Console.WriteLine($"The process failed: {e.ToString()}");
        }
    }
}

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

复制

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

注解

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

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

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

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

下表介绍了用于自定义各种 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值