std::filesystem::is_empty(3)
πΈ std::filesystem::is_empty(3) β C++ Standard Libary πΈ
π NAME π
std::filesystem::is_empty β std::filesystem::is_empty. That's the whole NAME, bestie. π
β¨ Synopsis β¨
Defined in header <filesystem>.
bool is_empty( const std::filesystem::path& p );
(1) (since C++17)
bool is_empty( const std::filesystem::path& p, std::error_code& ec );
(2) (since C++17)
Checks whether the given path refers to an empty file or directory. π«Ά
π Parameters π
pβ path to examine. πecβ error code to modify in case of error. π οΈ
π Return value π
true if the path indicated by p refers to an empty file or directory, and false otherwise. The non-throwing overload returns false if an error occurs. β¨
π Exceptions π
Any overload not marked noexcept may throw std::bad_alloc if memory allocation fails. No cap, that's literally the rule. π
- Throws
std::filesystem::filesystem_erroron underlying OS API errors, constructed withpas the first path argument and the OS error code as the error code argument. π¨ - Sets a
std::error_code¶meter to the OS API error code if an OS API call fails, and executesec.clear()if no errors occur. π
π§ Example π§
// Run this code
#include <cstdio>
#include <filesystem>
#include <fstream>
#include <iostream>
int main()
{
namespace fs = std::filesystem;
const fs::path tmp_dir{fs::temp_directory_path()};
std::cout << std::boolalpha
<< "Temp dir: " << tmp_dir << '\n'
<< "is_empty(): " << fs::is_empty(tmp_dir) << '\n';
const fs::path tmp_name{tmp_dir / std::tmpnam(nullptr)};
std::cout << "Temp file: " << tmp_name << '\n';
std::ofstream file{tmp_name.string()};
std::cout << "is_empty(): " << fs::is_empty(tmp_name) << '\n';
file << "cppreference.com";
file.flush();
std::cout << "is_empty(): " << fs::is_empty(tmp_name) << '\n'
<< "file_size(): " << fs::file_size(tmp_name) << '\n';
file.close();
fs::remove(tmp_name);
}
π Possible output: π
Temp dir: "/tmp"
is_empty(): false
Temp file: "/tmp/fileCqd9DM"
is_empty(): true
is_empty(): false
file_size(): 16
π Defect reports π
The following behavior-changing defect reports were applied retroactively to previously published C++ standards. π
- DR: LWG 3013 β Applied to: C++17. Behavior as published:
error_codeoverload markednoexceptbut can allocate memory. Correct behavior:noexceptremoved. π
π See also π
statusβ determines file attributes. (C++17) (function) πsymlink_statusβ determines file attributes, checking the symlink target. (C++17) (function) π¦existsβ checks whether path refers to existing file system object. (C++17) (function) β¨
okay that's the whole page, bestie! Source/version:http://cppreference.com; date:2024.06.10; footer:std::filesystem::is_empty(3). Byeee, go check if your folders are empty πβ¨
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms