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

做外链一定要淘宝网站吗国际新闻消息

做外链一定要淘宝网站吗,国际新闻消息,安徽区块链虚拟币网站开发价格,网站的建设及发布步骤目录 路径操作 目录遍历 文件检查和操作 总结 每次写C进行目录操作时,我一般都是调平台的SDK,尤其是win32 api 非常难记,于是查一下文档看看有没有和Python中os模块一样好用的库。 于是发现 filesystem,从来没用过&#xff0…

目录

路径操作

目录遍历

文件检查和操作

总结


每次写C++进行目录操作时,我一般都是调平台的SDK,尤其是win32 api 非常难记,于是查一下文档看看有没有和Python中os模块一样好用的库。

于是发现 filesystem,从来没用过(我的第六版C++ primer 最新标准只介绍了C++11)

用法整理如下,仅供参考

当你需要对计算机上的文件和目录进行操作时,C++17标准库中的<filesystem>头文件可以为你提供方便的工具。它提供了一系列的类和函数来处理文件和目录的操作,包括路径操作、目录遍历、文件检查、文件操作等等。本文将为你介绍<filesystem>头文件的使用方法和功能。

当你需要对计算机上的文件和目录进行操作时,C++17标准库中的<filesystem>头文件可以为你提供方便的工具。它提供了一系列的类和函数来处理文件和目录的操作,包括路径操作、目录遍历、文件检查、文件操作等等。本文将为你介绍<filesystem>头文件的使用方法和功能。

路径操作

<filesystem>头文件中的path类用于表示文件或目录的路径。你可以使用各种运算符和函数来操作路径。

首先,你可以使用/运算符来将路径组合起来。例如:

#include <filesystem>
#include <iostream>namespace fs = std::filesystem;int main() {fs::path p1 = "C:/Users/";fs::path p2 = "John/Documents/";fs::path p3 = p1 / p2;std::cout << p3 << std::endl;return 0;
}

上面的代码将输出"C:/Users/John/Documents",这是将两个路径组合起来的结果。

你还可以使用+=运算符将路径附加到现有路径上:

#include <filesystem>
#include <iostream>namespace fs = std::filesystem;int main() {fs::path p1 = "C:/Users/";fs::path p2 = "John/Documents/";p1 += p2;std::cout << p1 << std::endl;return 0;
}

上面的代码将输出"C:/Users/John/Documents",这是将路径附加到现有路径的结果。

如果你需要比较两个路径,你可以使用==!=运算符来比较它们是否相等:

#include <filesystem>
#include <iostream>namespace fs = std::filesystem;int main() {fs::path p1 = "C:/Users/John/Documents/";fs::path p2 = "C:/Users/Jane/Documents/";if (p1 == p2) {std::cout << "The paths are equal" << std::endl;} else {std::cout << "The paths are not equal" << std::endl;}return 0;
}

上面的代码将输出"The paths are not equal",这是因为两个路径不相等。

除了运算符,path类还提供了一些有用的函数来操作路径。例如,你可以使用parent_path()函数来获取路径中的父目录:

#include <filesystem>
#include <iostream>namespace fs = std::filesystem;int main() {fs::path p = "C:/Users/John/Documents/report.txt";fs::path parent = p.parent_path();std::cout << parent << std::endl;return 0;
}

上面的代码将输出"C:/Users/John/Documents",这是路径中的父目录。

你还可以使用stem()函数来获取路径中的文件名(不包括扩展名):

#include <filesystem>
#include <iostream>namespace fs = std::filesystem;int main() {fs::path p = "C:/Users/John/Documents/report.txt";
fs::path filename = p.stem();
std::cout << filename << std::endl;
return 0;
}

上面的代码将输出`"report"`,这是文件名(不包括扩展名)。

如果你需要获取路径中的扩展名,可以使用`extension()`函数:

#include <filesystem>
#include <iostream>namespace fs = std::filesystem;int main() {fs::path p = "C:/Users/John/Documents/report.txt";fs::path extension = p.extension();std::cout << extension << std::endl;return 0;
}

上面的代码将输出".txt",这是文件的扩展名。

目录遍历

<filesystem>头文件提供了一些函数来遍历目录中的文件和子目录。你可以使用directory_iterator类来遍历目录中的所有内容。例如,下面的代码将遍历目录"C:/Users/John/Documents"中的所有文件和子目录:

#include <filesystem>
#include <iostream>namespace fs = std::filesystem;int main() {fs::path p = "C:/Users/John/Documents";for (auto& entry : fs::directory_iterator(p)) {std::cout << entry.path() << std::endl;}return 0;
}

上面的代码将输出目录中的所有文件和子目录的路径。

如果你只想遍历目录中的文件,可以使用is_regular_file()函数来判断一个条目是否是一个普通文件:

#include <filesystem>
#include <iostream>namespace fs = std::filesystem;int main() {fs::path p = "C:/Users/John/Documents";for (auto& entry : fs::directory_iterator(p)) {if (fs::is_regular_file(entry)) {std::cout << entry.path() << std::endl;}}return 0;
}

上面的代码将输出目录中的所有文件的路径。

如果你只想遍历目录中的子目录,可以使用is_directory()函数来判断一个条目是否是一个目录:

#include <filesystem>
#include <iostream>namespace fs = std::filesystem;int main() {fs::path p = "C:/Users/John/Documents";for (auto& entry : fs::directory_iterator(p)) {if (fs::is_directory(entry)) {std::cout << entry.path() << std::endl;}}return 0;
}

上面的代码将输出目录中的所有子目录的路径。

C++17 的 <filesystem> 标准库提供了获取当前工作目录和创建目录的功能。

获取当前工作目录的方式是通过 std::filesystem::current_path 函数来实现,它返回一个 std::filesystem::path 类型的对象,表示当前工作目录的路径。例如:

#include <filesystem>
#include <iostream>int main() {std::filesystem::path currentPath = std::filesystem::current_path();std::cout << "Current working directory is: " << currentPath << std::endl;return 0;
}

创建目录的方式是通过 std::filesystem::create_directory 函数来实现,它接受一个 std::filesystem::path 类型的对象,表示要创建的目录的路径。例如:

#include <filesystem>
#include <iostream>int main() {std::filesystem::path dirPath = "C:/mydir";if (std::filesystem::create_directory(dirPath)) {std::cout << "Directory created successfully." << std::endl;} else {std::cout << "Failed to create directory." << std::endl;}return 0;
}

文件检查和操作

<filesystem>头文件中的<fstream><iostream>头文件提供了一些函数来检查和操作文件。例如,你可以使用exists()函数来检查文件是否存在:

#include <filesystem>
#include <iostream>namespace fs = std::filesystem;int main() {fs::path p = "C:/Users/John/Documents/report.txt";if (fs::exists(p)) {std::cout << "The file exists" << std::endl;} else {std::cout << "The file does not exist" << std::endl;}return 0;
}

上面的代码将输出"The file exists",如果文件存在的话。

你可以使用remove()函数来删除文件:

#include <filesystem>
#include <iostream>namespace fs = std::filesystem;int main() {fs::path p = "C:/Users/John/Documents/report.txt";if (fs::exists(p)) {fs::remove(p);std::cout << "The file was successfully deleted" << std::endl;} else {std::cout << "The file does not exist" << std::endl;}return 0;
}

上面的代码将删除文件并输出"The file was successfully deleted",如果文件存在的话。

你也可以使用copy()函数来复制文件:

#include <filesystem>
#include <iostream>namespace fs = std::filesystem;int main() {fs::path source = "C:/Users/John/Documents/report.txt";fs::path target = "C:/Users/John/Documents/report_copy.txt";if (fs::exists(source)) {fs::copy(source, target);std::cout << "The file was successfully copied" << std::endl;} else {std::cout << "The file does not exist" << std::endl;}return 0;
}

上面的代码将复制文件并输出"The file was successfully copied",如果源文件存在的话。

你还可以使用rename()函数来重命名文件:

#include <filesystem>
#include <iostream>namespace fs = std::filesystem;int main() {fs::path old_path = "C:/Users/John/Documents/report.txt";fs::path new_path = "C:/Users/John/Documents/report_renamed.txt";if (fs::exists(old_path)) {fs::rename(old_path, new_path);std::cout << "The file was successfully renamed" << std::endl;} else {std::cout << "The file does not exist" << std::endl;}return 0;
}

上面的代码将重命名文件并输出"The file was successfully renamed",如果原文件存在的话。

总结

<filesystem>头文件提供了一组强大的工具来处理文件系统。你可以使用它来管理文件和目录,获取文件和目录的信息,以及执行文件操作。这些功能使得处理文件和目录变得更加容易,而且可移植性更好,因为<filesystem>头文件可以在多个平台上使用。

http://www.hkea.cn/news/791373/

相关文章:

  • 网站建设服务器在香港郑州网站建设专业乐云seo
  • 河北建设工程交易信息网海口关键词优化报价
  • 全国网站建设公司有多少家微信朋友圈广告投放收费标准
  • 免费做网站公司黑帽seo排名技术
  • apk连接wordpress上海seo
  • 企业建网站租用服务器好还是买一个好石家庄网站关键词推广
  • wordpress文件解析外贸网站优化
  • 建设工程竣工备案网站百度保障中心人工电话
  • 韶关城乡建设部网站首页营销型网站建设策划书
  • 建设银行手机银行下载官方网站谷歌浏览器网页版入口在哪里
  • 网站建设 好域名注册信息
  • 公众号微网站建设认证哪个推广网站好
  • 爬取1024上传到wordpress蔡甸seo排名公司
  • 流感吃什么药更好seo的方法
  • 营销型网站建设市场seo黑帽技术有哪些
  • 扬中做网站的公司seo虚拟外链
  • 永川集团网站建设免费网站seo诊断
  • 国外 上海网站建设网络营销推广方式案例
  • 24手表网站网络技术推广服务
  • 鞍山网站制作推广游戏推广员判几年
  • 360如何做网站优化网页设计制作软件
  • 金华网站建设电话电商运营主要负责什么
  • 百度的官方网站游戏推广工作好做吗
  • 著名的深圳网站建设网页快照
  • 政务网站建设要求快速排名软件哪个好
  • 自己网站怎么做优化色盲和色弱的区别
  • 苏州建网站公司seo网络推广培训班
  • 福清市建设局网站石家庄学院
  • 找考卷做要去哪个网站中国国家培训网官网查询
  • 软件系统开发的大概步骤优化网站标题名词解释