System.IO.FileStream.Seek 方法

方法描述

将该流的当前位置设置为给定值。

语法定义(C# System.IO.FileStream.Seek 方法 的用法)

public override long Seek(
	long offset,
	SeekOrigin origin
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
offset System-Int64 相对于 origin 的点,从此处开始查找。
origin System-IO-SeekOrigin 使用 SeekOrigin 类型的值,将开始位置、结束位置或当前位置指定为 origin 的参考点。
返回值 System.Int64 流中的新位置。

提示和注释

此方法重写 Stream.Seek。

注意

使用 FileStream.CanSeek 属性确定当前实例是否支持查找。 有关更多信息,请参见Stream.CanSeek。

您可以搜索到超出流长度的任何位置。 当在文件的长度之外查找时,文件的大小会增加。 在 Windows NT 和较高版本中,所有添加到文件末尾的数据都被设置为零。 在 Windows 98 或早期版本中,添加到文件末尾的数据不会被设置为零,这意味着先前删除的数据对该流而言为可见。

有关通用 I/O 任务的列表,请参见通用 I/O 任务。

System.IO.FileStream.Seek 方法例子

下面的示例通过使用多个 SeekOrigin 值与 Seek 方法从文件向后读取文本。

using System;
using System.IO;

public class FSSeek
{
    public static void Main()
    {
        // temp.txt contains "This is a test!"

        FileStream fs = new FileStream(@"c:\temp\temp.txt", FileMode.Open, FileAccess.Read);
        long offset;

        // read the file backwards using SeekOrigin.Begin...
        for (offset = fs.Length - 1; offset >= 0; offset--)
        {
            fs.Seek(offset, SeekOrigin.Begin);
            Console.Write(Convert.ToChar(fs.ReadByte()));
        }
        Console.WriteLine();

        // read the file backwards using SeekOrigin.End...
        for (offset = 1; offset <= fs.Length; offset++)
        {
            fs.Seek(-offset, SeekOrigin.End);
            Console.Write(Convert.ToChar(fs.ReadByte()));
        }
        Console.WriteLine();

        // read the file backwards using SeekOrigin.Current...
        fs.Seek(0, SeekOrigin.End);
        for (offset = 0; offset < fs.Length; offset++)
        {
            fs.Seek(-1, SeekOrigin.Current);
            Console.Write(Convert.ToChar(fs.ReadByte()));
            fs.Seek(-1, SeekOrigin.Current);
        }
        Console.WriteLine();
        fs.Close();
    }
}
// This code example displays the following output:
//
// !tset a si sihT
// !tset a si sihT
// !tset a si sihT

异常

异常 异常描述
IOException 发生了 I/O 错误。
NotSupportedException 流不支持查找,例如,如果 FileStream 是由管道或控制台输出构造的。
ArgumentException 尝试在流的开始位置之前查找。
ObjectDisposedException 在流关闭后调用方法。

命名空间

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