当前位置: 技术问答>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.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。