Skip to Main Content
C++语言导学(原书第2版)
book

C++语言导学(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced content levelIntermediate to advanced
450 pages
5h 35m
Chinese
Pearson
Content preview from C++语言导学(原书第2版)

10.10 文件系统

大多数系统都有文件系统(file system)的概念,它提供对保存为文件(file)的永久信息的访问机制。不幸的是,文件系统的属性和操纵文件系统的方式在不同系统中差异巨大。为了解决这个问题,<filesystem>中的文件系统库为大多数文件系统中的大多数设施提供了一个一致的接口。使用<filesystem>,我们可以以可移植的方式

·表达文件系统路径以及在文件系统中导航

·检查文件类型及其关联的权限

文件系统库可以处理万国码(unicode),但具体方法已经超出了本书范围。推荐感兴趣的读者进一步阅读C++参考手册[Cppreference]和Boost文件系统文档[Boost]获取更细节的内容。

下面考虑一个例子:

注意,操纵文件系统的程序通常是在一台计算机上与其他程序一起运行的。因此,文件系统的内容在两个命令之间可能发生改变。例如,即使我们首先小心地断言f必须存在,但在下一行询问f是否是一个普通文件时,它完全可能已经不存在了。

path是一个相当复杂的类,它能够处理本地字符集和很多操作系统的规范。特别是,它可以处理由main()呈现的来自命令行的文件名,例如:

path的有效性直到使用时才会检查。即使这样,其有效性也依赖于程序所运行的系统的规范。

一个path自然可用来打开一个文件: ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey
软件开发实践:项目驱动式的Java开发指南

软件开发实践:项目驱动式的Java开发指南

Raoul-Gabriel Urma, Richard Warburton
Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉

Publisher Resources

ISBN: 9787111633280