当前位置: 首页 > news >正文

做中英文网站seo排名影响因素主要有

做中英文网站,seo排名影响因素主要有,wordpress百度小程序,免费制作自己的微网站吗目录 一、读取文件的字符串行 二、避免读取写入同一文件 三、使用内存映射随机访问文件 四、过去 24 小时内修改过的文件名 五、查找给定路径的循环 六、递归查找重名文件 七、使用给定断言递归查找所有文件 八、跳过隐藏文件遍历目录 九、在给定深度的目录#xff0…        目录 一、读取文件的字符串行 二、避免读取写入同一文件 三、使用内存映射随机访问文件 四、过去 24 小时内修改过的文件名 五、查找给定路径的循环 六、递归查找重名文件 七、使用给定断言递归查找所有文件 八、跳过隐藏文件遍历目录 九、在给定深度的目录递归计算文件大小 十、递归查找所有 png 文件 十一、忽略文件名大小写使用给定模式查找所有文件 本文将介绍Rust的文件系统涵盖文件读写、目录遍历并给出代码示例。 一、读取文件的字符串行 我们向文件写入三行信息然后使用 BufRead::lines 创建的迭代器 Lines 读取文件一次读回一行。File 模块实现了提供 BufReader 结构体的 Read trait。File::create 打开文件 File 进行写入File::open 则进行读取代码如下 use std::fs::File; use std::io::{Write, BufReader, BufRead, Error};fn main() - Result(), Error {let path lines.txt;let mut output File::create(path)?;write!(output, out)?;let input File::open(path)?;let buffered BufReader::new(input);for line in buffered.lines() {println!({}, line?);}Ok(()) } 二、避免读取写入同一文件 对文件使用 same_file::Handle 结构体可以测试文件句柄是否等同。在本实例中将对要读取和写入的文件句柄进行相等性测试。 use same_file::Handle; use std::fs::File; use std::io::{BufRead, BufReader, Error, ErrorKind}; use std::path::Path;fn main() - Result(), Error {let path_to_read Path::new(new.txt);let stdout_handle Handle::stdout()?;let handle Handle::from_path(path_to_read)?;if stdout_handle handle {return Err(Error::new(ErrorKind::Other,You are reading and writing to the same file,));} else {let file File::open(path_to_read)?;let file BufReader::new(file);for (num, line) in file.lines().enumerate() {println!({} : {}, num, line?.to_uppercase());}}Ok(()) } 三、使用内存映射随机访问文件 使用 memmap 创建文件的内存映射并模拟文件的一些非序列读取。使用内存映射意味着您仅需索引一个切片而不是使用 seek 方法来导航整个文件。 Mmap::map 函数假定内存映射后的文件没有被另一个进程同时更改否则会出现竞态条件。 use memmap::Mmap; use std::fs::File; use std::io::{Write, Error};fn main() - Result(), Error {write!(File::create(content.txt)?, My hovercraft is full of eels!)?;let file File::open(content.txt)?;let map unsafe { Mmap::map(file)? };let random_indexes [0, 1, 2, 19, 22, 10, 11, 29];assert_eq!(map[3..13], bhovercraft);let random_bytes: Vecu8 random_indexes.iter().map(|idx| map[idx]).collect();assert_eq!(random_bytes[..], bMy loaf!);Ok(()) } 四、过去 24 小时内修改过的文件名 通过调用 env::current_dir 获取当前工作目录然后通过 fs::read_dir 读取目录中的每个条目通过 DirEntry::path 提取条目路径以及通过通过 fs::Metadata 获取条目元数据。Metadata::modified 返回条目自上次更改以来的运行时间 SystemTime::elapsed。Duration::as_secs 将时间转换为秒并与 24 小时24 * 60 * 60 秒进行比较。Metadata::is_file 用于筛选出目录。 use error_chain::error_chain;use std::{env, fs};error_chain! {foreign_links {Io(std::io::Error);SystemTimeError(std::time::SystemTimeError);} }fn main() - Result() {let current_dir env::current_dir()?;println!(Entries modified in the last 24 hours in {:?}:,current_dir);for entry in fs::read_dir(current_dir)? {let entry entry?;let path entry.path();let metadata fs::metadata(path)?;let last_modified metadata.modified()?.elapsed()?.as_secs();if last_modified 24 * 3600 metadata.is_file() {println!(Last modified: {:?} seconds, is read only: {:?}, size: {:?} bytes, filename: {:?},last_modified,metadata.permissions().readonly(),metadata.len(),path.file_name().ok_or(No filename)?);}}Ok(()) } 五、查找给定路径的循环 使用 same_file::is_same_file 检测给定路径的循环。例如可以通过软连接符号链接在 Unix 系统上创建循环 mkdir -p /tmp/foo/bar/baz ln -s /tmp/foo/ /tmp/foo/bar/baz/qux下面的实例将断言存在一个循环。 use std::io; use std::path::{Path, PathBuf}; use same_file::is_same_file;fn contains_loopP: AsRefPath(path: P) - io::ResultOption(PathBuf, PathBuf) {let path path.as_ref();let mut path_buf path.to_path_buf();while path_buf.pop() {if is_same_file(path_buf, path)? {return Ok(Some((path_buf, path.to_path_buf())));} else if let Some(looped_paths) contains_loop(path_buf)? {return Ok(Some(looped_paths));}}return Ok(None); }fn main() {assert_eq!(contains_loop(/tmp/foo/bar/baz/qux/bar/baz).unwrap(),Some((PathBuf::from(/tmp/foo),PathBuf::from(/tmp/foo/bar/baz/qux)))); } 六、递归查找重名文件 在当前目录中递归查找重复的文件名只打印一次。 use std::collections::HashMap; use walkdir::WalkDir;fn main() {let mut filenames HashMap::new();for entry in WalkDir::new(.).into_iter().filter_map(Result::ok).filter(|e| !e.file_type().is_dir()) {let f_name String::from(entry.file_name().to_string_lossy());let counter filenames.entry(f_name.clone()).or_insert(0);*counter 1;if *counter 2 {println!({}, f_name);}} } 七、使用给定断言递归查找所有文件 在当前目录中查找最近一天内修改的 JSON 文件。使用 follow_links 确保软链接符号链接像普通目录和文件一样被按照当前查找规则执行。 use error_chain::error_chain;use walkdir::WalkDir;error_chain! {foreign_links {WalkDir(walkdir::Error);Io(std::io::Error);SystemTime(std::time::SystemTimeError);} }fn main() - Result() {for entry in WalkDir::new(.).follow_links(true).into_iter().filter_map(|e| e.ok()) {let f_name entry.file_name().to_string_lossy();let sec entry.metadata()?.modified()?;if f_name.ends_with(.json) sec.elapsed()?.as_secs() 86400 {println!({}, f_name);}}Ok(()) } 八、跳过隐藏文件遍历目录 递归下行到子目录的过程中使用 filter_entry 对目录中的条目传递 is_not_hidden 断言从而跳过隐藏的文件和目录。Iterator::filter 可应用到要检索的任何目录 WalkDir::DirEntry即使父目录是隐藏目录。 根目录 . 的检索结果通过在断言 is_not_hidden 中使用 WalkDir::depth 参数生成。 use walkdir::{DirEntry, WalkDir};fn is_not_hidden(entry: DirEntry) - bool {entry.file_name().to_str().map(|s| entry.depth() 0 || !s.starts_with(.)).unwrap_or(false) }fn main() {WalkDir::new(.).into_iter().filter_entry(|e| is_not_hidden(e)).filter_map(|v| v.ok()).for_each(|x| println!({}, x.path().display())); } 九、在给定深度的目录递归计算文件大小 通过 WalkDir::min_depth 和 WalkDir::max_depth 方法可以灵活设置目录的递归深度。下面的实例计算了 3 层子文件夹深度的所有文件的大小总和计算中忽略根文件夹中的文件。 use walkdir::WalkDir;fn main() {let total_size WalkDir::new(.).min_depth(1).max_depth(3).into_iter().filter_map(|entry| entry.ok()).filter_map(|entry| entry.metadata().ok()).filter(|metadata| metadata.is_file()).fold(0, |acc, m| acc m.len());println!(Total size: {} bytes., total_size); } 十、递归查找所有 png 文件 在路径任意部分使用 ** 模式例如/media/**/*.png 匹配 media 及其子目录中的所有 PNG 文件。 use error_chain::error_chain;use glob::glob;error_chain! {foreign_links {Glob(glob::GlobError);Pattern(glob::PatternError);} }fn main() - Result() {for entry in glob(**/*.png)? {println!({}, entry?.display());}Ok(()) } 十一、忽略文件名大小写使用给定模式查找所有文件 在 /media/ 目录中查找与正则表达模式 img_[0-9]*.png 匹配的所有图像文件。 一个自定义 MatchOptions 结构体被传递给 glob_with 函数使全局命令模式下不区分大小写同时保持其它选项的默认值 Default。 注glob 是 glob command 的简写。在 shell 里面用 * 等匹配模式来匹配文件如ls src/*.rs。 use error_chain::error_chain; use glob::{glob_with, MatchOptions};error_chain! {foreign_links {Glob(glob::GlobError);Pattern(glob::PatternError);} }fn main() - Result() {let options MatchOptions {case_sensitive: false,..Default::default()};for entry in glob_with(/media/img_[0-9]*.png, options)? {println!({}, entry?.display());}Ok(()) }
http://www.zqtcl.cn/news/259137/

相关文章:

  • 企业管理外贸企业网站优化
  • 免费图纸网东莞百度快照优化排名
  • 南宁网站建设培训学校青海网站建设加q5299丶14602做词
  • 鱼台做网站多少钱wordpress pot
  • 招聘网站建设维护人员怎样自己开发一款软件
  • 上海网站制作怎么选泰安网红人物
  • 企业网站建设义乌南靖网站建设
  • 抖音电商网站建设如何制作app推广
  • 关键词的选择网站提示网站建设电销异议处理话术
  • 南京建设网站内容网站打开速度慢是否需要升级带宽
  • 内容类网站如何 流量厦门市建设局网站住房保障专栏
  • 朝城做网站公司网站内容建设要求age06
  • 云南省城乡建设培训中心网站备份wordpress网站
  • 快速建站公司地址vr哪家公司做得好
  • 网站空间怎么更换网站营销如何做
  • 制作单页网站要网址wordpress更新显示失败
  • 阿里巴巴网站建设公司设计网站制作
  • 泰安网站建设有哪些常见的cms网站程序有哪些
  • 九寨沟城乡建设官方网站深圳的互联网公司排名
  • app可视化开发工具seo网站推广服务
  • 临近做网站网络营销方式哪些?
  • 网站数据分析案例怎样在网上做广告
  • 网站页头图片怎么做几个版面的网站
  • 网站 f型网站建设 大公司
  • 做网站最好选什么语言百度域名服务器
  • 网站维护一般多久西宁的网站建设
  • 网站建设需要什么工具投诉百度最有效的电话
  • 做家政网站公司策划公司英文
  • 自己建设个人网站要花费多少自己怎么制作微信网页链接
  • 邢台网站设计哪家专业php图书管理系统网站开发