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

FreeBSD Manual Pages

  
 
  

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

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

Synopsis
	  std::filesystem::file_time_type last_write_time() const;
	  std::filesystem::file_time_type last_write_time( std::error_code& ec
       (since C++17)
	  ) const noexcept;

	  If the last modification time	is cached in this directory_entry, re-
       turns the cached
	  value. Otherwise,  returns  std::filesystem::last_write_time(path())
       or
	  std::filesystem::last_write_time(path(), ec),	respectively.

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

Return value
	  The last modification	time for the referred-to filesystem object

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>
	#include <chrono>
	#include <ctime>

	std::string to_string(std::filesystem::file_time_type const& ftime) {
	    std::time_t	cftime = std::chrono::system_clock::to_time_t(
		std::chrono::file_clock::to_sys(ftime));
	    std::string	str = std::asctime(std::localtime(&cftime));
	    str.pop_back();  //	rm the trailing	'\n' put by `asctime`
	    return str;
	}

	int main() {
	    auto dir = std::filesystem::current_path();
	    using Entry	= std::filesystem::directory_entry;
	    for	  (Entry   const&  entry  :  std::filesystem::directory_itera-
       tor(dir)) {
		std::cout << to_string(entry.last_write_time())
			  << " : " << entry.path().filename() << '\n';
	    }
	}

Possible output:
	Sat Aug	21 07:39:13 2021 : "main.cpp"
	Sat Aug	21 07:39:16 2021 : "a.out"

See also
	  last_write_time gets or sets the time	of the last data modification
	  (C++17)	  (function)

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

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

home | help