日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

批量删除文件注释

發布時間:2025/3/8 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 批量删除文件注释 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

用以刪除一個目錄下類似“# *****”格式的配置文件注釋,只可刪除單獨的行。

  • #include?<stdio.h>???
  • #include?<string.h>???
  • #include?<dirent.h>???
  • #include?<time.h>???
  • ???
  • int?traversal_dir(const?char?*dir,?int?dept);???
  • int?del_file_com(const?char?*file_path);???
  • int?main(int?argc,?char?*argv[])???
  • {???
  • ????if(argc<2)?{???
  • ????????fprintf(stdout,?"input?dir...\n");???
  • ????????return?-1;???
  • ????}???
  • ????int?dept?=?0;???
  • ????traversal_dir(argv[1],?dept);???
  • ????return?0;???
  • }???
  • int?traversal_dir(const?char?*dir,?int?dept)???
  • {???
  • ????DIR?*dirptr?=?NULL;???
  • ????if(NULL?==?(dirptr=opendir(dir)))?{???
  • ????????fprintf(stdout,?"no?such?dirpath:%s\n",?dir);???
  • ????????return?-1;???
  • ????}???
  • ????struct?dirent?*entry;???
  • ????while(NULL?!=?(entry=readdir(dirptr)))?{???
  • ????????//when?the?entry?is?sub_dir?into?it???
  • ????????if((!strcmp(entry->d_name,?"."))?||?(!strcmp(entry->d_name,?"..")))?{???
  • ????????????continue;???
  • ????????}???
  • ????????int?i;???
  • ????????for(i=0;?i<dept;?++i)?{???
  • ????????????fprintf(stdout,?"?");???
  • ????????}???
  • ????????char?dir_buf[1024];???
  • ????????snprintf(dir_buf,?sizeof(dir_buf),?"%s/%s",?dir,?entry->d_name);???
  • ????????if(DT_DIR?==?entry->d_type)?{?/*?4?*/???
  • ????????????fprintf(stdout,?"dir:%s/%s\n",?dir,?entry->d_name);???
  • ????????????traversal_dir(dir_buf,?dept+4);???
  • ????????}?else?if?(DT_REG?==?entry->d_type)?{???
  • ????????????fprintf(stdout,?"file:%s\n",?entry->d_name);???
  • ????????????del_file_com(dir_buf);???
  • ????????}?else?{???
  • ????????????continue;???
  • ????????}???
  • ????}???
  • ????return?0;???
  • }???
  • int?del_file_com(const?char?*file_path)???
  • {???
  • ????const?char?*old_file?=?file_path;???
  • ????char?new_file[1024];???
  • ????snprintf(new_file,?sizeof(new_file),?"%s.%ld",?old_file,?time(NULL));???
  • //??fprintf(stdout,?"del_file_com...\n");???
  • //??fprintf(stdout,?"old_file:%s,?new_file:%s\n",?old_file,?new_file);???
  • ????FILE?*fp_from?=?fopen(old_file,?"r");???
  • ????FILE?*fp_to?=?fopen(new_file,?"w");???
  • ????if((NULL==fp_from)?||?(NULL==fp_to))?{???
  • ????????return?-1;???
  • ????}???
  • ????char?line[1024];???
  • ????char?*cp?=?line;???
  • ????while(NULL?!=?(fgets(cp,?sizeof(line),?fp_from)))?{???
  • ????????while((('?'==*cp)||('\t'==*cp)||('\n'==*cp))?&&?('\0'!=*cp))?{???
  • ????????????++cp;???
  • ????????}???
  • ????????if(('#'!=*cp)?&&?('\0'!=*cp))?{???
  • ????????????fprintf(fp_to,?"%s",?line);???
  • ????????}???
  • ????????cp?=?line;???
  • ????}???
  • ????fclose(fp_from);???
  • ????fclose(fp_to);???
  • ????rename(new_file,?old_file);???
  • ????return?0;???
  • }???
  • 備注:

  • struct?dirent???
  • ??{???
  • #ifndef?__USE_FILE_OFFSET64???
  • ????__ino_t?d_ino;???
  • ????__off_t?d_off;???
  • #else???
  • ????__ino64_t?d_ino;???
  • ????__off64_t?d_off;???
  • #endif???
  • ????unsigned?short?int?d_reclen;???
  • ????unsigned?char?d_type;???
  • ????char?d_name[256];???????/*?We?must?not?include?limits.h!?*/???
  • ??};???
  • ???
  • #ifdef?__USE_LARGEFILE64???
  • struct?dirent64???
  • ??{???
  • ????__ino64_t?d_ino;???
  • ????__off64_t?d_off;???
  • ????unsigned?short?int?d_reclen;???
  • ????unsigned?char?d_type;???
  • ????char?d_name[256];???????/*?We?must?not?include?limits.h!?*/???
  • ??};???
  • #endif???
  • ???
  • /*?File?types?for?`d_type'.??*/???
  • enum???
  • ??{???
  • ????DT_UNKNOWN?=?0,???
  • #?define?DT_UNKNOWN?DT_UNKNOWN???
  • ????DT_FIFO?=?1,???
  • #?define?DT_FIFO????DT_FIFO???
  • ????DT_CHR?=?2,???
  • #?define?DT_CHR?????DT_CHR???
  • ????DT_DIR?=?4,???
  • #?define?DT_DIR?????DT_DIR???
  • ????DT_BLK?=?6,???
  • #?define?DT_BLK?????DT_BLK???
  • ????DT_REG?=?8,???
  • #?define?DT_REG?????DT_REG???
  • ????DT_LNK?=?10,???
  • #?define?DT_LNK?????DT_LNK???
  • ????DT_SOCK?=?12,???
  • #?define?DT_SOCK????DT_SOCK???
  • ????DT_WHT?=?14???
  • #?define?DT_WHT?????DT_WHT???
  • ??};???
  • ?

    ?

    轉載于:https://blog.51cto.com/dazhang/785459

    總結

    以上是生活随笔為你收集整理的批量删除文件注释的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。