- filesystem[meta header]
- std::filesystem[meta namespace]
- path[meta class]
- function[meta id-type]
- cpp17[meta cpp]
path extension() const;
パスが保持している拡張子を取得する。
- この関数によって拡張子のパスは、ドットを含む
- カレントディレクトリを表す「
"."
(ドット x 1)」および親ディレクトリを表す「".."
(ドット x 2)」は拡張子なしで見なされ、空のパスが返される
filename()
で返されたファイル名について、stem()
には含まれないサフィックス部分を返す。
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main()
{
fs::path ps[] = {
"/foo/bar.txt", // ファイル名を含むパス
"/foo/bar.tar.gz", // ファイル名に複数のドットが含まれるパス
"/foo/", // ディレクトリパス
"/foo/.", // カレントディレクトリ
"..", // 親ディレクトリ
".file", // 隠しファイル (拡張子なし)
};
for (const fs::path& p : ps) {
std::cout << p << " : " << p.extension() << std::endl;
}
}
- extension()[color ff0000]
"/foo/bar.txt" : ".txt"
"/foo/bar.tar.gz" : ".gz"
"/foo/" : ""
"/foo/." : ""
".." : ""
".file" : ""
#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main()
{
fs::path ps[] = {
"C:/foo/bar.txt", // ファイル名を含むパス
"C:/foo/bar.tar.gz", // ファイル名に複数のドットが含まれるパス
"C:/foo/", // ディレクトリパス
"C:/foo/.", // カレントディレクトリ
"..", // 親ディレクトリ
".file", // UNIX系OSでの隠しファイル (拡張子なし)
};
for (const fs::path& p : ps) {
std::cout << p << " : " << p.extension() << std::endl;
}
}
- extension()[color ff0000]
"C:/foo/bar.txt" : ".txt"
"C:/foo/bar.tar.gz" : ".gz"
"C:/foo/" : ""
"C:/foo/." : ""
".." : ""
".file" : ""
- C++17
- Clang: 9.0
- GCC: 8.1
- Visual C++: 2017 Update 7