System.IO.FileInfo 类

方法描述

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

语法定义(C# System.IO.FileInfo 类 的用法)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class FileInfo : FileSystemInfo

构造函数

构造函数名称 构造函数描述
FileInfo 初始化 FileInfo 类的新实例,它作为文件路径的包装。

成员/方法

方法名称 方法描述
AppendText 创建一个 StreamWriter,它向 FileInfo 的此实例表示的文件追加文本。
CopyTo(String) 将现有文件复制到新文件,不允许覆盖现有文件。
CopyTo(String, Boolean) 将现有文件复制到新文件,允许覆盖现有文件。
Create 创建文件。
CreateObjRef 创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。 (继承自 MarshalByRefObject。)
CreateText 创建写入新文本文件的 StreamWriter。
Decrypt 使用 Encrypt 方法解密由当前帐户加密的文件。
Delete 永久删除文件。 (重写 FileSystemInfo.Delete()。)
Encrypt 将某个文件加密,使得只有加密该文件的帐户才能将其解密。
Equals(Object) 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。)
Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
GetAccessControl() 获取 FileSecurity 对象,该对象封装当前 FileInfo 对象所描述的文件的访问控制列表 (ACL) 项。
GetAccessControl(AccessControlSections) 获取 FileSecurity 对象,该对象封装当前 FileInfo 对象所描述的文件的指定类型的访问控制列表 (ACL) 项。
GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)
GetLifetimeService 检索控制此实例的生存期策略的当前生存期服务对象。 (继承自 MarshalByRefObject。)
GetObjectData 设置带有文件名和附加异常信息的 SerializationInfo 对象。 (继承自 FileSystemInfo。)
GetType 获取当前实例的 Type。 (继承自 Object。)
InitializeLifetimeService 获取控制此实例的生存期策略的生存期服务对象。 (继承自 MarshalByRefObject。)
MemberwiseClone() 创建当前 Object 的浅表副本。 (继承自 Object。)
MemberwiseClone(Boolean) 创建当前 MarshalByRefObject 对象的浅表副本。 (继承自 MarshalByRefObject。)
MoveTo 将指定文件移到新位置,并提供指定新文件名的选项。
Open(FileMode) 在指定的模式中打开文件。
Open(FileMode, FileAccess) 用读、写或读/写访问权限在指定模式下打开文件。
Open(FileMode, FileAccess, FileShare) 用读、写或读/写访问权限和指定的共享选项在指定的模式中打开文件。
OpenRead 创建只读 FileStream。
OpenText 创建使用 UTF8 编码、从现有文本文件中进行读取的 StreamReader。
OpenWrite 创建只写 FileStream。
Refresh 刷新对象的状态。 (继承自 FileSystemInfo。)
Replace(String, String) 使用当前 FileInfo 对象所描述的文件替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。
Replace(String, String, Boolean) 使用当前 FileInfo 对象所描述的文件替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。 还指定是否忽略合并错误。
SetAccessControl 将 FileSecurity 对象所描述的访问控制列表 (ACL) 项应用于当前 FileInfo 对象所描述的文件。
ToString 以字符串形式返回路径。 (重写 Object.ToString()。)

提示和注释

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

许多 FileInfo 方法在您创建或打开文件时返回其他 I/O 类型。 可以使用这些其他类型进一步处理文件。 有关更多信息,请参见特定的 FileInfo 成员,如 Open、OpenRead、OpenText、CreateText 或 Create。

如果打算多次重用某个对象,可考虑使用 FileInfo 的实例方法,而不是 File 类的相应静态方法,因为并不总是需要安全检查。

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

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

Enumeration

说明

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 检索文件的名称。

System.IO.FileInfo 类例子

以后调用时,必须调用 Refresh 以获取信息的最新副本。

using System;
using System.IO;

class Test 
{
	
    public static void Main() 
    {
        string path = Path.GetTempFileName();
        FileInfo 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()) 
        {
            string s = "";
            while ((s = sr.ReadLine()) != null) 
            {
                Console.WriteLine(s);
            }
        }

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

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

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

            //Delete the newly created file.
            fi2.Delete();
            Console.WriteLine("{0} was successfully deleted.", path2);

        } 
        catch (Exception e) 
        {
            Console.WriteLine("The process failed: {0}", e.ToString());
        }
    }
}

继承层次结构

System.Object

System.MarshalByRefObject

System.IO.FileSystemInfo

System.IO.FileInfo

命名空间

namespace: System.IO

程序集: mscorlib(在 mscorlib.dll 中)

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。