C++获取文件最后修改时间(调用BOOST库实现,无视文件大小)

2021/5/21 20:28:50

本文主要是介绍C++获取文件最后修改时间(调用BOOST库实现,无视文件大小),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

C++获取文件最后修改时间

找了半天发现很多方法都不支持大文件,几个G的文件用其他的方法直接返回1970的日期,实在头疼,在外网上找到一个调用boost来实现的方法,十分简洁好用,话不多说直接上代码

#include <boost/filesystem/operations.hpp>
#include <ctime>
#include <iostream>
 
int main( int argc , char *argv[ ] ) {
   if ( argc != 2 ) {
      std::cerr << "Error! Syntax: moditime <filename>!\n" ;
      return 1 ;
   }
   boost::filesystem::path p( argv[ 1 ] ) ;
   if ( boost::filesystem::exists( p ) ) {
      std::time_t t = boost::filesystem::last_write_time( p ) ;
      std::cout << "On " << std::ctime( &t ) << " the file " << argv[ 1 ] 
	 << " was modified the last time!\n" ;
      std::cout << "Setting the modification time to now:\n" ;
      std::time_t n = std::time( 0 ) ;
      boost::filesystem::last_write_time( p , n ) ; 
      t = boost::filesystem::last_write_time( p ) ;
      std::cout << "Now the modification time is " << std::ctime( &t ) << std::endl ;
      return 0 ;
   } else {
      std::cout << "Could not find file " << argv[ 1 ] << '\n' ;
      return 2 ;
   }
}

转载于https://rosettacode.org/wiki/File_modification_time#C.2B.2B



这篇关于C++获取文件最后修改时间(调用BOOST库实现,无视文件大小)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程