当前位置:  技术问答>linux和unix

遍历目录时,无法获取文件的正确时间

    来源: 互联网  发布时间:2017-03-23

    本文导语:  对于当前目录下的文件,可以得到正确的文件时间。其它目录,得到的文件时间不对,不知道为什么。 string get_date_time(long t) { char      datetime[32]; struct tm     *newtime; string      ret;     if(t == 0)     {  ...

对于当前目录下的文件,可以得到正确的文件时间。其它目录,得到的文件时间不对,不知道为什么。

string get_date_time(long t)
{
char      datetime[32];
struct tm     *newtime;
string      ret;

    if(t == 0)
    {
        return "";
    }

newtime = localtime(&t);
sprintf(datetime,"%04d-%02d-%02d %02d:%02d:%02d",
     newtime->tm_year+1900,
     newtime->tm_mon+1,
     newtime->tm_mday,
     newtime->tm_hour,
     newtime->tm_min,
     newtime->tm_sec);
ret = datetime;
return ret;
}


int search_folder(string path)
{
DIR             *pdir;
struct dirent *pentry;
struct stat m_stat;

pdir = opendir(path.c_str());
if(pdir == NULL)
    {
     return ret_invalid_handle;
    }

while((pentry = readdir(pdir)) != NULL)
    {
     if(strcmp(pentry->d_name,".")==0 || strcmp(pentry->d_name,"..")==0)
        {
         continue;
        }

     if(pentry->d_type == DT_DIR)
        {
         search_folder(path+"/"+pentry->d_name);
        }
     else if(pentry->d_type == DT_REG || pentry->d_type == DT_UNKNOWN) //cygwin下,有系统属性的文件会被识别为DT_UNKNOWN类型
        {
         lstat(pentry->d_name,&m_stat);
         printf("%s  %sn",get_date_time(m_stat.st_mtime).c_str(),pentry->d_name);
        }
    }

closedir(pdir);
return ret_ok;
}

|
自己解决了?

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3