r
来源:互联网 发布:淘宝图片空间在哪里找 编辑:程序博客网 时间:2024/06/10 03:37
char *display_file_attribute(struct stat file_info,char *file_name){ char *pFile_mtime_size; off_t file_size; char size_str[FILE_SIZE_LEN]; char time_str[FILE_MTIME_LEN]; char file_mtime_size[FILE_MTIME_SIZE_LEN]; memset( &file_info,0,sizeof(file_info)); lstat( file_name, &file_info ); strftime(time_str, sizeof(time_str), "%Y%m%d%H%M%S",localtime(&file_info.st_mtime)); file_size=file_info.st_size; sprintf(size_str,"%d",file_size); sprintf(file_mtime_size,"%s*%s",size_str,time_str); pFile_mtime_size=file_mtime_size; return pFile_mtime_size;}int testdir(char *path){ struct stat buf; if(lstat(path,&buf)<0) { return 0; } if(S_ISDIR(buf.st_mode)) { return 1; //directory } return 0;}int directory(char *path){ DIR *db; char filename[FILE_NAME]; char file_size_mtime[FILE_MTIME_SIZE_LEN]; char file_attribute[FILE_ATTRIBUTE]; struct stat file_info; struct dirent *dir_info; db=opendir(path); if(db==NULL){ LOGE("Open dir error !\n"); return 0; } memset(filename,0,FILE_NAME); memset(file_size_mtime,0,FILE_MTIME_SIZE_LEN); memset(file_attribute,0,200); while ((dir_info=readdir(db))) { if((strcmp(dir_info->d_name,".")==0)||(strcmp(dir_info->d_name,"..")==0)) continue; else{ sprintf(filename,"%s/%s",path,dir_info->d_name); if(testdir(filename)){ LOGD("%s\n",filename); directory(filename); rmdir(filename); }else { memcpy(file_size_mtime,display_file_attribute(file_info,filename),FILE_MTIME_SIZE_LEN); sprintf(file_attribute,"%s*%s",filename,file_size_mtime); LOGD("%s\n",filename); remove(filename); } } memset(filename,0,64); } closedir(db); return 0;}int RemovePath(char *path){ if(access(path,F_OK)==0&&testdir(path)) { directory(path); } else LOGD("%s not exist\n",path); return 0;}erase_volume(const char *volume) { ui_set_background(BACKGROUND_ICON_INSTALLING); ui_show_indeterminate_progress(); ui_print("Formatting %s...\n", volume); ensure_path_mounted(volume); RemovePath(volume); ensure_path_unmounted(volume); return 0;}