跨平台查询文件时间,如果超过7天,删除该文件(windows和linxu测试过)

windows调用的是_stat函数,linux调用的是stat函数。

 

#include <time.h>

#include <sys/types.h>

#include <sys/stat.h>

#include <stdio.h>

#include <errno.h>







int main( void )

{

   int result;

   char* filename = "putty.exe";

   //errno_t err;

#ifdef WIN32

   struct _stat buf;

   result = _stat( filename, &buf );

#else

   struct stat buf;

   result = stat(filename, &buf);

#endif



   if( result != 0 )

   {

      perror( "Problem getting information" );

      switch (errno)

      {

         case ENOENT:

           printf("File %s not found.\n", filename);

           break;

         case EINVAL:

           printf("Invalid parameter to _stat.\n");

           break;

         default:

           /* Should never be reached. */

           printf("Unexpected error in _stat.\n");

      }

   }

   else

   {

      // Output some of the statistics:

      printf( "File size     : %ld\n", buf.st_size );

      printf( "Drive         : %c:\n", buf.st_dev + 'A' );



      time_t t;

      tzset(); /*tzset()*/

      t = time(NULL);

      if((t - buf.st_mtime) > 604800)//604800是7天的秒数,下面是删除超过7天的文件

      {

        remove(filename);

        printf("remove file : %s \n" ,filename);

      }



   }



}

 

你可能感兴趣的:(windows)