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) |