std::filesystem:: remove, std::filesystem:: remove_all
Defined in header
<filesystem>
|
||
bool
remove
(
const
std::
filesystem
::
path
&
p
)
;
|
(1) | (since C++17) |
bool
remove
(
const
std::
filesystem
::
path
&
p,
std::
error_code
&
ec
)
noexcept
;
|
(2) | (since C++17) |
std::
uintmax_t
remove_all
(
const
std::
filesystem
::
path
&
p
)
;
|
(3) | (since C++17) |
std::
uintmax_t
remove_all
(
const
std::
filesystem
::
path
&
p,
std::
error_code
&
ec
)
;
|
(4) | (since C++17) |
remove
. Symlinks are not followed (symlink is removed, not its target).
remove
. Symlinks are not followed (symlink is removed, not its target).
Parameters
p | - | path to delete |
ec | - | out-parameter for error reporting in the non-throwing overload. |
Return value
error_code&
argument returns
false
on errors.
error_code&
argument returns
static_cast
<
std::
uintmax_t
>
(
-
1
)
on error.
Exceptions
Any overload not marked
noexcept
may throw
std::bad_alloc
if memory allocation fails.
Notes
On POSIX systems, this function typically calls
unlink
and
rmdir
as needed, on Windows
DeleteFileW
and
RemoveDirectoryW
.
If p did not exist, this function returns false and does not report an error.
Example
#include <cstdint> #include <filesystem> #include <iostream> namespace fs = std::filesystem; int main() { fs::path tmp{std::filesystem::temp_directory_path()}; std::filesystem::create_directories(tmp / "abcdef/example"); std::uintmax_t n{fs::remove_all(tmp / "abcdef")}; std::cout << "Deleted " << n << " files or directories\n"; }
Possible output:
Deleted 2 files or directories
Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 3014 | C++17 |
error_code
overload of
remove_all
marked noexcept but can allocate memory
|
noexcept removed |
See also
erases a file
(function) |