/***************************************************************************** 函 数 名 : USIMM_OpenDir 功能描述 : 打开文件夹 输入参数 : pcDirName --- 文件夹路径 输出参数 : 无 返 回 值 : SI_UINT32 函数执行结果 调用函数 : 被调函数 : 外部接口 修改历史 : 1.日 期 : 2013年08月28日 作 者 : zhuli 修改内容 : Create *****************************************************************************/ VOS_INT32 USIMM_OpenDir(VOS_CHAR *pcDirName) { DRV_DIR_STRU *pstTmpDir; /* coverity[alloc_fn] */ pstTmpDir = DRV_FILE_OPENDIR(pcDirName); if(VOS_NULL_PTR == pstTmpDir) { USIMM_WARNING_LOG("Make Dir fail!"); return VOS_ERR; } /* coverity[leaked_storage] */ return VOS_OK; }
/***************************************************************************** Function : NV_DeleteFileBySuffix Description: Delete files by file's suffix name. Input : pcDirName - the file's directory. Return : VOID Other : *****************************************************************************/ VOS_VOID NV_DeleteFilesBySuffix(VOS_CHAR *pcDirPath, VOS_CHAR *pcSuffixName) { DRV_DIR_STRU *pstTmpDir; DRV_DIRENT_STRU *pstTmpDirent; VOS_UINT32 ulNameLen; VOS_CHAR acSuffixSrc[NV_XML_SUFFIX_STR_SIZE]; VOS_UINT32 i; VOS_UINT32 ulLoopNum = 0; VOS_UINT32 ulFileNum = 0; pstTmpDir = DRV_FILE_OPENDIR(pcDirPath); if (VOS_NULL_PTR == pstTmpDir) { NV_Printf("NV_DeleteFilesBySuffix, DRV_FILE_OPENDIR %s fail.\r\n", pcDirPath); return; } do { pstTmpDirent = DRV_FILE_READDIR(pstTmpDir); /* readdir's return value is zero, so the loop should be over. */ if (VOS_NULL_PTR != pstTmpDirent) { /* ulNumLen includes the ending of string. */ ulNameLen = VOS_StrLen(pstTmpDirent->d_name) + 1; if (NV_XML_SUFFIX_STR_SIZE < ulNameLen) { for (i = 0; i < NV_XML_SUFFIX_STR_SIZE; i++) { acSuffixSrc[i] = (VOS_CHAR)tolower(pstTmpDirent->d_name[ulNameLen - (NV_XML_SUFFIX_STR_SIZE - i)]); } if (VOS_OK == VOS_StrCmp(acSuffixSrc, pcSuffixName)) { NV_File_Remove(pcDirPath, pstTmpDirent->d_name); ulFileNum++; } } } /* Avoid dead loop.*/ ulLoopNum++; }while ((VOS_NULL_PTR != pstTmpDirent) && (ulLoopNum < NV_XML_FILE_MAX_NUM)); if (VOS_OK != DRV_FILE_CLOSEDIR(pstTmpDir)) { NV_Printf("NV_DeleteFilesBySuffix, DRV_FILE_CLOSEDIR fail.\r\n"); } if (NV_XML_FILE_MAX_NUM == ulLoopNum) { NV_Printf("NV_DeleteFilesBySuffix, File system crashed.\r\n"); } /* Record the number of deleted files. */ if (0 != ulFileNum) { NV_Printf("NV_DeleteFilesBySuffix, the num of deleted files: %d.\r\n", ulFileNum); } return; }