pub trait FileExt {
// Required methods
fn seek_read(&self, buf: &mut [u8], offset: u64) -> Result<usize>;
fn seek_write(&self, buf: &[u8], offset: u64) -> Result<usize>;
}
Available on Windows only.
Expand description
特定于 Windows 的 fs::File
扩展。
Required Methods§
sourcefn seek_read(&self, buf: &mut [u8], offset: u64) -> Result<usize>
fn seek_read(&self, buf: &mut [u8], offset: u64) -> Result<usize>
搜寻到给定位置并读取多个字节。
返回读取的字节数。
偏移量相对于文件的开始,因此独立于当前游标。
当前游标受此函数的影响,它被设置为读取的结尾。
超出文件末尾的读取将始终以 0\ 的长度返回。
请注意,类似于 File::read
,短读返回不会出错。
从如此短的读取返回时,文件指针仍会更新。
Examples
use std::io;
use std::fs::File;
use std::os::windows::prelude::*;
fn main() -> io::Result<()> {
let mut file = File::open("foo.txt")?;
let mut buffer = [0; 10];
// 从文件开头开始读取 10 个字节,从 72 个字节开始。
file.seek_read(&mut buffer[..], 72)?;
Ok(())
}
Runsourcefn seek_write(&self, buf: &[u8], offset: u64) -> Result<usize>
fn seek_write(&self, buf: &[u8], offset: u64) -> Result<usize>
搜寻到给定位置并写入多个字节。
返回写入的字节数。
偏移量相对于文件的开始,因此独立于当前游标。 当前游标受此函数的影响,它被设置为写入结束。
当写入超出文件末尾时,文件将适当扩展,并且中间字节将保持未初始化状态。
请注意,与 File::write
相似,返回短写也不是错误。
从这么短的写入返回时,文件指针仍会更新。
Examples
use std::fs::File;
use std::os::windows::prelude::*;
fn main() -> std::io::Result<()> {
let mut buffer = File::create("foo.txt")?;
// 从文件开头开始写一个字节字符串,从 72 个字节开始。
buffer.seek_write(b"some bytes", 72)?;
Ok(())
}
Run