Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::filesy...regular_file(3) C++ Standard Libarystd::filesy...regular_file(3)

NAME
       std::filesystem::directory_entry::is_regular_file    -	 std::filesys-
       tem::directory_entry::is_regular_file

Synopsis
	  bool is_regular_file() const;					(since
       C++17)
	  bool is_regular_file(	std::error_code& ec ) const noexcept;

	  Checks  whether the pointed-to object	is a regular file. Effectively
       returns
	  std::filesystem::is_regular_file(status()) or
	  std::filesystem::is_regular_file(status(ec)),	respectively.

Parameters
	  ec - out-parameter for error reporting in the	non-throwing overload

Return value
	  true if the referred-to filesystem object is a regular  file,	 false
       otherwise.

Exceptions
	  The overload that does not take a std::error_code& parameter throws
	  filesystem::filesystem_error	on  underlying	OS  API	 errors,  con-
       structed	with p as the
	  first	path argument and the OS error code as the  error  code	 argu-
       ment. The overload
	  taking a std::error_code& parameter sets it to the OS	API error code
       if an OS	API
	  call fails, and executes ec.clear() if no errors occur. Any overload
       not marked
	  noexcept may throw std::bad_alloc if memory allocation fails.

Example
       // Run this code

	#include <filesystem>
	#include <iostream>
	#include <string>

	namespace fs = std::filesystem;

	int main(int argc, const char* argv[])
	{
	    // Print out all regular files in a	directory 'dir'.
	    try	{
		const auto dir = argc == 2
				     ? fs::path{ argv[1] }
				     : fs::current_path();

		std::cout << "Current dir: " <<	dir << '\n'
			  << std::string(40, '-') << '\n';

		for  (fs::directory_entry  const& entry	: fs::directory_itera-
       tor(dir)) {
		    if (entry.is_regular_file()) {
			std::cout << entry.path().filename() <<	'\n';
		    }
		}
	    } catch(fs::filesystem_error const&	e) {
		std::cout << e.what() << '\n';
	    }
	}

Possible output:
	Current	dir: "/tmp/1588616534.9884143"
	----------------------------------------
	"main.cpp"
	"a.out"

See also
	  is_regular_file checks whether the argument refers to	a regular file
	  (C++17)	  (function)

http://cppreference.com		  2022.07.31	 std::filesy...regular_file(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::filesystem::directory_entry::is_regular_file&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help