
- C 标准库
- C 标准库
- C++ 标准库
- C++ 库 - 首页
- C++ 库 - <fstream>
- C++ 库 - <iomanip>
- C++ 库 - <ios>
- C++ 库 - <iosfwd>
- C++ 库 - <iostream>
- C++ 库 - <istream>
- C++ 库 - <ostream>
- C++ 库 - <sstream>
- C++ 库 - <streambuf>
- C++ 库 - <atomic>
- C++ 库 - <complex>
- C++ 库 - <exception>
- C++ 库 - <functional>
- C++ 库 - <limits>
- C++ 库 - <locale>
- C++ 库 - <memory>
- C++ 库 - <new>
- C++ 库 - <numeric>
- C++ 库 - <regex>
- C++ 库 - <stdexcept>
- C++ 库 - <string>
- C++ 库 - <thread>
- C++ 库 - <tuple>
- C++ 库 - <typeinfo>
- C++ 库 - <utility>
- C++ 库 - <valarray>
- C++ STL 库
- C++ 库 - <array>
- C++ 库 - <bitset>
- C++ 库 - <deque>
- C++ 库 - <forward_list>
- C++ 库 - <list>
- C++ 库 - <map>
- C++ 库 - <multimap>
- C++ 库 - <queue>
- C++ 库 - <priority_queue>
- C++ 库 - <set>
- C++ 库 - <stack>
- C++ 库 - <unordered_map>
- C++ 库 - <unordered_set>
- C++ 库 - <vector>
- C++ 库 - <algorithm>
- C++ 库 - <iterator>
- C++ 高级库
- C++ 库 - <any>
- C++ 库 - <barrier>
- C++ 库 - <bit>
- C++ 库 - <chrono>
- C++ 库 - <cinttypes>
- C++ 库 - <clocale>
- C++ 库 - <condition_variable>
- C++ 库 - <coroutine>
- C++ 库 - <cstdlib>
- C++ 库 - <cstring>
- C++ 库 - <cuchar>
- C++ 库 - <charconv>
- C++ 库 - <cfenv>
- C++ 库 - <cmath>
- C++ 库 - <ccomplex>
- C++ 库 - <expected>
- C++ 库 - <format>
- C++ 库 - <future>
- C++ 库 - <flat_set>
- C++ 库 - <flat_map>
- C++ 库 - <filesystem>
- C++ 库 - <generator>
- C++ 库 - <initializer_list>
- C++ 库 - <latch>
- C++ 库 - <memory_resource>
- C++ 库 - <mutex>
- C++ 库 - <mdspan>
- C++ 库 - <optional>
- C++ 库 - <print>
- C++ 库 - <ratio>
- C++ 库 - <scoped_allocator>
- C++ 库 - <semaphore>
- C++ 库 - <source_location>
- C++ 库 - <span>
- C++ 库 - <spanstream>
- C++ 库 - <stacktrace>
- C++ 库 - <stop_token>
- C++ 库 - <syncstream>
- C++ 库 - <system_error>
- C++ 库 - <string_view>
- C++ 库 - <stdatomic>
- C++ 库 - <variant>
- C++ STL 库速查表
- C++ STL - 速查表
C++ 库 - <filesystem>
C++ 中的<filesystem> 头文件提供了一组用于执行文件系统操作的函数,例如操作路径、复制或删除文件以及检查文件状态。
如果实现无法访问分层文件系统,或者它不提供必要的容量,则 <filesystem> 库可能不可用。如果底层文件系统(例如 FAT(文件分配表))不支持某些功能,则这些功能可能不可用。
包含 <filesystem> 头文件
要在 C++ 程序中包含 <filesystem> 头文件,可以使用以下语法。
#include <filesystem>
<filesystem> 头文件的函数
以下是 <filesystem> 头文件中所有函数的列表。
路径操作函数
这些路径操作函数对文件路径进行操作,以组合、转换或解析它们。
序号 | 函数和说明 |
---|---|
1 | absolute
此函数基于给定的相对路径或绝对路径组合绝对路径。 |
2 | canonical 和 weakly_canonical
这些函数通过解析所有符号链接和相对路径将路径转换为规范形式。 |
3 | relative, proximate
这些函数组合从一个路径到另一个路径的相对路径。 |
4 | copy
此函数复制文件或目录。 |
5 | copy_file
此函数复制单个文件的内容。 |
6 | copy_symlink
此函数复制符号链接。 |
7 | create_directory, create_directories
这些函数创建单个/多个新目录。 |
8 | create_hard_link
此函数创建一个硬链接,允许单个文件具有多个目录条目。 |
9 | create_symlink, create_directory_symlink
这些函数为文件创建一个符号链接。 |
10 | current_path
此函数返回或设置当前工作目录。 |
11 | exists
此函数检查路径是否引用现有的文件系统对象。 |
12 | equivalent
此函数检查两个路径是否引用同一个文件系统对象。 |
13 | file_size
此函数返回文件的大小。 |
14 | hard_link_count
此函数返回引用特定文件的硬链接数。 |
15 | last_write_time
此函数获取或设置上次数据修改的时间。 |
16 | permissions
此函数修改文件访问权限。 |
17 | read_symlink
此函数获取符号链接的目标。 |
18 | remove
此函数删除文件或空目录。 |
19 | remove_all
此函数删除文件或递归地删除文件或目录及其所有内容。 |
20 | rename
此函数移动或重命名文件或目录。 |
21 | resize_file
此函数通过截断或零填充来更改常规文件的大小。 |
22 | space
此函数确定文件系统上可用的可用空间。 |
Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.
路径操作示例
在下面的示例中,我们将使用 exists() 检查指定的路径 (filePath) 是否引用现有的文件系统对象。
#include <iostream> #include <filesystem> int main() { std::filesystem::path filePath{"example.txt"}; if (std::filesystem::exists(filePath)) { std::cout << "The file exists." << std::endl; } else { std::cout << "The file does not exist." << std::endl; } return 0; }
输出
如果我们运行上面的代码,它将生成以下输出:
The file does not exist.
文件类型
<filesystem> 库提供了一些函数来确定路径指定的文件或目录的类型。这些函数用于了解文件的特性并根据文件类型实现逻辑。
序号 | 函数和说明 |
---|---|
1 | is_block_file
此函数检查给定路径是否引用块设备。 |
2 | is_character_file
此函数检查给定路径是否引用字符设备。 |
3 | is_directory
此函数检查给定路径是否引用目录。 |
4 | is_empty
此函数检查给定路径是否引用空文件或目录。 |
5 | is_fifo
此函数检查给定路径是否引用命名管道。 |
6 | is_other
此函数检查参数是否引用其他文件。 |
7 | is_regular_file
此函数检查参数是否引用常规文件。 |
8 | is_socket
此函数检查参数是否引用命名 IPC 套接字。 |
9 | is_symlink
此函数检查参数是否引用符号链接。 |
10 | status_known
此函数检查文件状态是否已知。 |
检查指定的路径
在下面的示例中,我们将使用 is_directory 检查指定的路径 (dirPath) 是否引用目录。
#include <iostream> #include <filesystem> int main() { std::filesystem::path dirPath{"my_directory"}; if (std::filesystem::is_directory(dirPath)) { std::cout << "This path refers to a directory." << std::endl; } else { std::cout << "This path does not refer to a directory." << std::endl; } return 0; }
输出
如果我们运行上面的代码,它将生成以下输出:
This path does not refer to a directory.