名前空間
変種
操作

std::experimental::filesystem::remove, std::experimental::filesystem::remove_all

From cppreference.com
< cpp‎ | experimental‎ | fs
 
 
 
 
ヘッダー <experimental/filesystem> で定義されています
bool remove( const path& p );
bool remove( const path& p, error_code& ec );
(1) (filesystem TS)
std::uintmax_t remove_all( const path& p );
std::uintmax_t remove_all( const path& p, error_code& ec );
(2) (filesystem TS)
1) パス p が識別するファイルまたは空のディレクトリを、POSIX の remove を呼び出したかのように削除します。シンボリックリンクはたどりません(シンボリックリンク自体が削除され、そのターゲットは削除されません)。
2) p がディレクトリである場合、その内容と、すべてのサブディレクトリの内容を再帰的に削除してから、POSIX の remove を繰り返し適用したかのように p 自体を削除します。シンボリックリンクはたどりません(シンボリックリンク自体が削除され、そのターゲットは削除されません)。

目次

[編集] Parameters

p - 削除するパス
エラーコード - 例外を投げないオーバーロードでのエラー報告のための出力パラメータ

[編集] Return value

1) ファイルが削除された場合は true、存在しなかった場合は falseerror_code& 引数を受け取るオーバーロードは、エラー時に false を返します。
2) 削除されたファイルおよびディレクトリの数(p が最初から存在しなかった場合はゼロになる可能性があります)を返します。 error_code& 引数を受け取るオーバーロードは、エラー時に static_cast<std::uintmax_t>(-1) に設定します。

[編集] Exceptions

error_code& パラメータを受け取らないオーバーロードは、基盤となる OS API エラーが発生した場合に、最初の引数として p、エラーコード引数として OS エラーコードを使用して構築された filesystem_error をスローします。メモリ割り当てに失敗した場合、 std::bad_alloc がスローされる可能性があります。 error_code& を受け取るオーバーロードは、OS API の呼び出しが失敗した場合にそれを OS API エラーコードに設定し、エラーが発生しない場合は ec.clear() を実行します。このオーバーロードは
noexcept 指定:  
noexcept
  

[編集] Notes

POSIX システムでは、この関数は通常、必要に応じて `unlink` および `rmdir` を呼び出します。Windows では `RemoveDirectoryW` および `DeleteFileW` を呼び出します。

[編集] Example

#include <cstdint>
#include <experimental/filesystem>
#include <iostream>
namespace fs = std::experimental::filesystem;
 
int main()
{
    fs::path dir = fs::temp_directory_path();
    fs::create_directories(dir / "abcdef/example");
    std::uintmax_t n = fs::remove_all(dir / "abcdef");
    std::cout << "Deleted " << n << " files or directories\n";
}

実行結果の例

Deleted 2 files or directories

[編集] See also

ファイルを削除する
(関数) [編集]
English 日本語 中文(简体) 中文(繁體)