我写的按日期归类的哈希表

本文介绍了一个程序如何通过遍历文件系统收集文件路径及其修改时间,并将这些信息存储到特定的数据结构中,以便进一步处理。具体实现包括使用动态内存分配创建节点,以及根据时间对虚拟文件夹进行排序。

   memset(pAppletData->fullpath,0,PHOTO_MAX_PATH);    sprintf(pAppletData->fullpath,"%s%s",pAppletData->selectpath,entry->d_name);

   if(pAppletData->filepStat == ListHead)    {     //creat     pS =(FiledataNode *)OS_Malloc(sizeof(FiledataNode));     pS->next = NULL;     pS->index = index;     //get entry data      strcpy(pS->fullpath,pAppletData->fullpath); //     strcat(pS->fullpath,entry->d_name);     // OS_TaskDelay(10); #ifdef WIN32     pS->datetime = i%8;     sprintf(pS->datetime_name, "%d-%d-%d",i%8,i%8,i%8);

#else

    ufs_stat(pAppletData->fullpath, &f_stat);     filedate = f_stat.st_mtime;     AF_PRINTF("fullpath: %s, /r/nyear(%d), month(%d), date(%d) /r/n",pAppletData->fullpath,(1980 + filedate.year),filedate.month,filedate.day);     pS->datetime = 19800000 + filedate.year*10000 + filedate.month*100 + filedate.day;     AF_PRINTF("----------------------------name =%s  index =%d/n",pS->fullpath,pS->index);     sprintf(pS->datetime_name, "%d-%d-%d",(1980 + filedate.year),filedate.month,filedate.day); #endif

//    strcpy(pS->datetime_name,pAppletData->pSVirtualDirArray->datetime_name);

    pSVirtualDirArray = (VirtualDirArray *)OS_Malloc(sizeof(VirtualDirArray));     pSVirtualDirArray->next = NULL;     pHeadVirtualDirArray = pSVirtualDirArray;     pSVirtualDirArray->childNode = pS;     pSVirtualDirArray->datetime = pS->datetime;     strcpy(pSVirtualDirArray->datetime_name,pS->datetime_name);

    pAppletData->nfilesCount++;     pAppletData->totalEntriesCount++;     pAppletData->filepStat = ListBody;       }    else  //Body    {     pS =(FiledataNode *)OS_Malloc(sizeof(FiledataNode));     pS->next = NULL;     pS->index = index;        //get fullpath and Time data     strcpy(pS->fullpath,pAppletData->fullpath); //    strcat(pS->fullpath,entry->d_name);     //OS_TaskDelay(10);    // AF_PRINTF("----------------------------name =%s  index =%d/n",pS->fullpath,pS->index); #ifdef WIN32     pS->datetime = i%8;     sprintf(pS->datetime_name, "%d-%d-%d",i%8,i%8,i%8); #else

    ufs_stat(pAppletData->fullpath, &f_stat);     filedate = f_stat.st_mtime;     AF_PRINTF("fullpath: %s, /r/nyear(%d), month(%d), date(%d) /r/n",pAppletData->fullpath,(1980 + filedate.year),filedate.month,filedate.day);     pS->datetime = 19800000 + filedate.year*10000 + filedate.month*100 + filedate.day;     AF_PRINTF("----------------------------name =%s  index =%d/n",pS->fullpath,pS->index);     sprintf(pS->datetime_name, "%d-%d-%d",(1980 + filedate.year),filedate.month,filedate.day); #endif         pSVirtualDirArray = pHeadVirtualDirArray;     findout = FALSE;     while(pSVirtualDirArray->next != NULL)     {      //time same

     if (pSVirtualDirArray->datetime == pS->datetime)

     {       FiledataNode *temp;       temp = pSVirtualDirArray->childNode;       pSVirtualDirArray->childNode = pS;       pS->next = temp;       findout = TRUE;       break;      }      pSVirtualDirArray = pSVirtualDirArray->next;     }    //the last one     if(pSVirtualDirArray->next == NULL)     {      if (pSVirtualDirArray->datetime == pS->datetime)      {       FiledataNode *temp;       temp = pSVirtualDirArray->childNode;       pSVirtualDirArray->childNode = pS;       pS->next = temp;       findout = TRUE;      }        }     if(findout != TRUE)     {      pSVirtualDirArray->next = (VirtualDirArray *)OS_Malloc(sizeof(VirtualDirArray));      pSVirtualDirArray = pSVirtualDirArray->next;      pSVirtualDirArray->next = NULL;      pSVirtualDirArray->childNode = pS;      pSVirtualDirArray->datetime = pS->datetime;      strcpy(pSVirtualDirArray->datetime_name,pS->datetime_name);      AF_PRINTF("fullpath: %s/r/n",pAppletData->fullpath);

    }      pAppletData->nfilesCount++;      pAppletData->totalEntriesCount++;     pAppletData->filepStat = ListBody;    }    //   if (pAppletData->nfilesCount==pAppletData->nfiles)    if ((i + 1) ==(pAppletData->totalEntries-1))    {     VirtualfolderSort(pHeadVirtualDirArray);     pAppletData->pHeadVirtualDirArray = pHeadVirtualDirArray;         pSVirtualDirArray = pHeadVirtualDirArray;         //count how many virual dir is.     for ( pAppletData->nVirualdirs = 0;pSVirtualDirArray != NULL;pAppletData->nVirualdirs++)     {      pSVirtualDirArray = pSVirtualDirArray->next;     }    }

乐播投屏是一款简单好用、功能强大的专业投屏软件,支持手机投屏电视、手机投电脑、电脑投电视等多种投屏方式。 多端兼容与跨网投屏:支持手机、平板、电脑等多种设备之间的自由组合投屏,且无需连接 WiFi,通过跨屏技术打破网络限制,扫一扫即可投屏。 广泛的应用支持:支持 10000+APP 投屏,包括综合视频、网盘与浏览器、美韩剧、斗鱼、虎牙等直播平台,还能将央视、湖南卫视等各大卫视的直播内容一键投屏。 高清流畅投屏体验:腾讯独家智能音画调校技术,支持 4K 高清画质、240Hz 超高帧率,低延迟不卡顿,能为用户提供更高清、流畅的视觉享受。 会议办公功能强大:拥有全球唯一的 “超级投屏空间”,扫码即投,无需安装。支持多人共享投屏、远程协作批注,PPT、Excel、视频等文件都能流畅展示,还具备企业级安全加密,保障会议资料不泄露。 多人互动功能:支持多人投屏,邀请好友加入投屏互动,远程也可加入。同时具备一屏多显、语音互动功能,支持多人连麦,实时语音交流。 文件支持全面:支持 PPT、PDF、Word、Excel 等办公文件,以及视频、图片等多种类型文件的投屏,还支持网盘直投,无需下载和转格式。 特色功能丰富:投屏时可同步录制投屏画面,部分版本还支持通过触控屏或电视端外接鼠标反控电脑,以及在投屏过程中用画笔实时标注等功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值