System.IO.FileInfo.Open 方法 (FileMode, FileAccess)

方法描述

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

语法定义(C# System.IO.FileInfo.Open 方法 (FileMode, FileAccess) 的用法)

public FileStream Open(
	FileMode mode,
	FileAccess access
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
mode System-IO-FileMode 一个 FileMode 常数,它指定打开文件所采用的模式(例如 Open 或 Append)。
access System-IO-FileAccess 一个 FileAccess 常数,它指定是使用 Read、Write 还是 ReadWrite 文件访问权限来打开文件。
返回值 System.IO.FileStream 用指定模式和访问权限打开且不共享的 FileStream 对象。

提示和注释

System.IO.FileInfo.Open 方法 (FileMode, FileAccess)例子

下面的示例以只读方式打开一个文件并从中读取。

using System;
using System.IO;
using System.Text;

class Test 
{
	
    public static void Main() 
    {
        string path = @"c:\MyTest.txt";
        FileInfo fi = new FileInfo(path);

        // Delete the file if it exists.
        if (!fi.Exists) 
        {
            //Create the file.
            using (FileStream fs = fi.Create()) 
            {
                Byte[] info = new UTF8Encoding(true).GetBytes("This is some text in the file.");
                //Add some information to the file.
                fs.Write(info, 0, info.Length);
            }
        }

        //Open the stream and read it back.
        using (FileStream fs = fi.Open(FileMode.Open, FileAccess.Read)) 
        {
            byte[] b = new byte[1024];
            UTF8Encoding temp = new UTF8Encoding(true);
            while (fs.Read(b,0,b.Length) > 0) 
            {
                Console.WriteLine(temp.GetString(b));
            }

            try 
            {
                //Try to write to the file.
                fs.Write(b,0,b.Length);
            } 
            catch (Exception e) 
            {
                Console.WriteLine("Writing was disallowed, as expected: {0}",
                    e.ToString());
            }
        }
    }
}
//This code produces output similar to the following; 
//results may vary based on the computer/file structure/etc.:
//
//This is some text in the file.
//
//
//
//
//
//
//
//
//
//
//
//
//Writing was disallowed, as expected: System.NotSupportedException: Stream does 
//not support writing.
//   at System.IO.__Error.WriteNotSupported()
//   at System.IO.FileStream.Write(Byte[] array, Int32 offset, Int32 count)
//   at Test.Main() in C:\Documents and Settings\My Computer\My Documents\
//Visual Studio 2005\Projects\finfo open2\finfo open2\Program.cs:line 39

异常

异常 异常描述
SecurityException 调用方没有所要求的权限。
ArgumentException path 为空,或者只包含空白。
FileNotFoundException 找不到该文件。
ArgumentNullException 一个或多个参数为 null。
UnauthorizedAccessException path 为只读,或者是一个目录。
DirectoryNotFoundException 指定的路径无效,比如在未映射的驱动器上。
IOException 该文件已打开。

命名空间

namespace: System.IO

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

版本信息

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