C++
文件系统 | Filesystem

std::filesystem::recursive_directory_iterator::depth

STD::文件系统::递归[医]目录[医]迭代器::深度

int depth() const;(since C++17)

返回从起始目录到当前迭代目录的目录数,即目录层次结构的当前深度。

起始目录的深度为0,其子目录的深度为1,等等。

如果*this是末端迭代器。

参数

%280%29

返回值

目录层次结构的当前深度。

例外

%280%29

此示例使用迭代深度计算目录树打印出的缩进。

二次

#include <fstream> #include <iostream> #include <string> #include <filesystem> namespace fs = std::filesystem; int main() { fs::create_directories("sandbox/a/b/c" fs::create_directories("sandbox/a/b/d/e" std::ofstream("sandbox/a/b/file1.txt" fs::create_symlink("a", "sandbox/syma" for(auto i = fs::recursive_directory_iterator("sandbox" i != fs::recursive_directory_iterator( ++i ) { std::cout << std::string(i.depth(), ' ') << *i; if(fs::is_symlink(i->symlink_status())) std::cout << " -> " << fs::read_symlink(*i std::cout << '\n'; } fs::remove_all("sandbox" }

二次

产出:

二次

"sandbox/a" "sandbox/a/b" "sandbox/a/b/c" "sandbox/a/b/d" "sandbox/a/b/d/e" "sandbox/a/b/file1.txt" "sandbox/syma" -> "a"

二次

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cppreference.com/w/cpp/filesystem/递归[医]目录[医]迭代器/深度