龙空技术网

112.C# FileStream

数字双碳王亮 515

前言:

现在我们对“通过文件句柄获取文件信息”都比较关注,看官们都想要剖析一些“通过文件句柄获取文件信息”的相关资讯。那么小编也在网摘上搜集了一些有关“通过文件句柄获取文件信息””的相关知识,希望我们能喜欢,姐妹们快快来了解一下吧!

摘要

FileStream类为文件操作提供了一个流。它可以用于执行同步和异步的读写操作。

FileStream类可以简单地将数据读写到文件中。

正文

属性

CanRead

获取一个值,该值指示当前流是否支持读取。

CanSeek

获取一个值,该值指示当前流是否支持查找。

CanTimeout

获取一个值,该值确定当前流是否可以超时。<br><br>(继承自 Stream)

CanWrite

获取一个值,该值指示当前流是否支持写入。

Handle

已过时。<br><br>获取当前 FileStream 对象所封装文件的操作系统文件句柄。

IsAsync

获取一个值,它指示 FileStream 是异步打开还是同步打开的。

Length

获取流的长度(以字节为单位)。

Name

获取 FileStream 中已打开的文件的绝对路径。

Position

获取或设置此流的当前位置。

ReadTimeout

获取或设置一个值(以毫秒为单位),该值确定流在超时前将尝试读取的时间。<br><br>(继承自 Stream)

SafeFileHandle

获取 SafeFileHandle 对象,它代表当前 FileStream 对象所封装的文件的操作系统文件句柄。

WriteTimeout

获取或设置一个值(以毫秒为单位),该值确定流在超时前将尝试写入多长时间。<br><br>(继承自 Stream)

方法

BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

开始异步读操作。 请考虑改用 ReadAsync(Byte[], Int32, Int32, CancellationToken)。

BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

开始异步写操作。 请考虑改用 WriteAsync(Byte[], Int32, Int32, CancellationToken)。

Close()

关闭当前流并释放与之关联的所有资源(如套接字和文件句柄)。 不直接调用此方法,而应确保流得以正确释放。<br><br>(继承自 Stream)

CopyTo(Stream)

从当前流中读取字节并将其写入到另一流中。<br><br>(继承自 Stream)

CopyTo(Stream, Int32)

使用指定的缓冲区大小,从当前流中读取字节并将其写入到另一流中。<br><br>(继承自 Stream)

CopyToAsync(Stream)

从当前流中异步读取字节并将其写入到另一个流中。<br><br>(继承自 Stream)

CopyToAsync(Stream, CancellationToken)

通过指定的取消令牌,从当前流中异步读取字节并将其写入到另一个流中。<br><br>(继承自 Stream)

CopyToAsync(Stream, Int32)

使用指定的缓冲区大小,从当前流中异步读取字节并将其写入到另一流中。<br><br>(继承自 Stream)

CopyToAsync(Stream, Int32, CancellationToken)

使用指定的缓冲区大小和取消令牌,从当前文件流中异步读取字节并将其写入到另一个流中。

CreateObjRef(Type)

创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。<br><br>(继承自 MarshalByRefObject)

Dispose(Boolean)

释放由 FileStream 占用的非托管资源,还可以另外再释放托管资源。

DisposeAsync()

异步释放 FileStream 使用的非托管资源。

EndRead(IAsyncResult)

等待挂起的异步读操作完成。 (请考虑改用 ReadAsync(Byte[], Int32, Int32, CancellationToken)。)

EndWrite(IAsyncResult)

结束异步写入操作,在 I/O 操作完成之前一直阻止。 (请考虑改用 WriteAsync(Byte[], Int32, Int32, CancellationToken)。)

Equals(Object)

确定指定对象是否等于当前对象。<br><br>(继承自 Object)

Finalize()

确保垃圾回收器回收 FileStream 时释放资源并执行其他清理操作。

Flush()

清除此流的缓冲区,使得所有缓冲数据都写入到文件中。

Flush(Boolean)

清除此流的缓冲区,将所有缓冲数据都写入到文件中,并且也清除所有中间文件缓冲区。

FlushAsync()

异步清除此流的所有缓冲区并导致所有缓冲数据都写入基础设备中。<br><br>(继承自 Stream)

FlushAsync(CancellationToken)

异步清理此流的所有缓冲区,导致所有缓冲数据都写入基础设备,并且监控取消请求。

Lock(Int64, Int64)

防止其他进程读取或写入 FileStream。

Read(Byte[], Int32, Int32)

从流中读取字节块并将该数据写入给定缓冲区中。

Read(Span<Byte>)

从当前文件流中读取字节序列,并在该文件流中按照读取的字节数提升位置。

ReadAsync(Byte[], Int32, Int32)

从当前流异步读取字节序列,并将流中的位置提升读取的字节数。<br><br>(继承自 Stream)

ReadAsync(Byte[], Int32, Int32, CancellationToken)

从当前文件流异步读取字节的序列,将其写入从指定偏移量开始的字节数组,按读取的字节数向前移动文件流中的位置,并监视取消请求。

ReadAsync(Memory<Byte>, CancellationToken)

从当前文件流异步读取字节的序列,将其写入某内存区域,按读取的字节数向前移动文件流中的位置,并监视取消请求。

ReadByte()

从文件中读取一个字节,并将读取位置提升一个字节。

Seek(Int64, SeekOrigin)

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

SetLength(Int64)

将该流的长度设置为给定值。

Unlock(Int64, Int64)

允许其他进程访问以前锁定的某个文件的全部或部分。

Write(Byte[], Int32, Int32)

将字节块写入文件流。

Write(ReadOnlySpan<Byte>)

将字节的序列从只读范围写入当前文件流,并按写入的字节数向前移动此文件流中的当前位置。

WriteAsync(Byte[], Int32, Int32)

将字节序列异步写入当前流,并将流的当前位置提升写入的字节数。<br><br>(继承自 Stream)

WriteAsync(Byte[], Int32, Int32, CancellationToken)

将字节的序列异步写入当前流,将该流中的当前位置向前移动写入的字节数,并监视取消请求。

WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

将字节的序列从内存区域异步写入当前文件流,按写入的字节数向前移动该文件流中的当前位置,并监视取消请求。

WriteByte(Byte)

一个字节写入文件流中的当前位置。

写文件

FileStream fs = new FileStream(@"d:\a.log", FileMode.OpenOrCreate);for (int i = 65; i < 91; i++){    fs.WriteByte((byte)i);}fs.Close();

读取文件

FileStream fs = new FileStream(@"d:\a.log", FileMode.Open);byte[] bs = new byte[fs.Length];fs.Read(bs, 0, bs.Length);fs.Close();string x = System.Text.Encoding.UTF8.GetString(bs);MessageBox.Show(x);

标签: #通过文件句柄获取文件信息