导出 (0) 打印
全部展开
此文章由人工翻译。 将光标移到文章的句子上,以查看原文。
译文
原文

FileInfo 类

更新:2010 年 8 月

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

命名空间:  System.IO
程序集:  mscorlib(在 mscorlib.dll 中)

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

FileInfo 类型公开以下成员。

  名称说明
公共方法由 XNA Framework 提供支持FileInfo初始化 FileInfo 类的新实例,它作为文件路径的包装。
页首

  名称说明
公共属性由 XNA Framework 提供支持Attributes获取或设置当前文件或目录的特性。 (继承自 FileSystemInfo。)
公共属性由 XNA Framework 提供支持CreationTime获取或设置当前文件或目录的创建时间。 (继承自 FileSystemInfo。)
公共属性CreationTimeUtc获取或设置当前文件或目录的创建时间,其格式为协调世界时 (UTC)。 (继承自 FileSystemInfo。)
公共属性由 XNA Framework 提供支持Directory获取父目录的实例。
公共属性由 XNA Framework 提供支持DirectoryName获取表示目录的完整路径的字符串。
公共属性由 XNA Framework 提供支持Exists获取指示文件是否存在的值。 (重写 FileSystemInfo.Exists。)
公共属性由 XNA Framework 提供支持Extension获取表示文件扩展名部分的字符串。 (继承自 FileSystemInfo。)
公共属性由 XNA Framework 提供支持FullName获取目录或文件的完整目录。 (继承自 FileSystemInfo。)
公共属性IsReadOnly获取或设置确定当前文件是否为只读的值。
公共属性由 XNA Framework 提供支持LastAccessTime获取或设置上次访问当前文件或目录的时间。 (继承自 FileSystemInfo。)
公共属性LastAccessTimeUtc获取或设置上次访问当前文件或目录的时间,其格式为协调世界时 (UTC)。 (继承自 FileSystemInfo。)
公共属性由 XNA Framework 提供支持LastWriteTime获取或设置上次写入当前文件或目录的时间。 (继承自 FileSystemInfo。)
公共属性LastWriteTimeUtc获取或设置上次写入当前文件或目录的时间,其格式为协调世界时 (UTC)。 (继承自 FileSystemInfo。)
公共属性由 XNA Framework 提供支持Length获取当前文件的大小(字节)。
公共属性由 XNA Framework 提供支持Name获取文件名。 (重写 FileSystemInfo.Name。)
页首

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

  名称说明
受保护的字段由 XNA Framework 提供支持FullPath表示目录或文件的完全限定目录。 (继承自 FileSystemInfo。)
受保护的字段由 XNA Framework 提供支持OriginalPath最初由用户指定的目录(不论是相对目录还是绝对目录)。 (继承自 FileSystemInfo。)
页首

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

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

如果打算多次重用某个对象,可考虑使用 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 检索文件的名称。

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

当第一次检索属性时,FileInfo 将调用 Refresh 方法并缓存文件的相关信息。 以后调用时,必须调用 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());
        }
    }
}


.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 系统要求

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

Date

修订记录

原因

2010 年 8 月

包括有关属性的最新的备注。

信息补充。

社区附加资源

添加
显示:
© 2015 Microsoft