通常我們在傳輸vs工程的時候,有很多不必要的檔案可以清理,通常這些檔案占用的空間可能還比較大,遠超工程**檔案的大小,於是寫了這個小工具,方便清理工程,支援多個過程同時清理,拖拽到介面上即可。
核心**如下:
void cvsprojectcleanerdlg::onbnclickedok()
else
}//開始逐個處理
std::string sitems = cmfcstrfile::cstring2string(stritems);
std::vectorvdirs = cstdstr::split(sitems, "|");
size_t ndirnum = vdirs.size();
for (size_t i = 0; i < ndirnum; ++i)
//1.首先檢查根目錄下是否存在.sln檔案
std::vectorvslnfiles;
if (getfiles(scurdir, vslnfiles, "*.sln") == 0)
//2.刪除根目錄下的所有指定型別的檔案
const std::vector& vrootdirs = _conf.vrootdirnames;
const size_t nrootnum = vrootdirs.size();
for (size_t j = 0; j < nrootnum; ++j)
}//3.刪除目錄下所有指定的資料夾
const std::vector& valldirnames = _conf.valldirnames;
std::vectorvalldirs;
getdirs(scurdir, valldirs);
const size_t nalldirnum = valldirs.size();
for (size_t j = 0; j < nalldirnum; ++j)
}//4.刪除目錄下所有指定的字尾的檔案
const std::vector& vallsuffixs = _conf.vallsuffixs;
const size_t nallsuffixsnum = vallsuffixs.size();
for (size_t j = 0; j < nallsuffixsnum; ++j)
}//5.刪除目錄下的所有空檔案
std::vectorvcheckblankdirs, vfilestmp;
getdirs(scurdir, vcheckblankdirs);
const size_t& ncheckblankdirnum = vcheckblankdirs.size();
for (size_t j = 0; j < ncheckblankdirnum; ++j)
}} writeinitofile(getinipath(), _conf);
afxmessagebox(ids_process_over);
cdialogex::onok();
}
其中,子目錄以及字尾的預設引數為:
typedef struct _config_s
}config_s;
歡迎交流與分享。 日誌清理小工具的開發
為了方便配置,日誌的原有路徑和備份路徑等配置我們定義在propies檔案中,然後通過spring的註解value來獲取 日誌清理配置 original.log.path data logs sspapi job log.back.path data logs sspapi job back back...
flex開發 框架 vs 小工具
經過最近半年的專案實踐,我一直在思考,框架 vs 小工具兩種開發方式。雖然目前專案用了parsley框架,但目前我在慢慢淡化其作用。更多的通過一些小的通用工具在組織整個專案。用ui框架來裝配介面。用乙個簡單serviceutils來與server端通訊。用乙個通用可配置的 查詢 分頁顯示介面 來做查...
小工具 tree工具
wangyetao linux u1604 tree l 1 bin boot cdrom dev etc home initrd.img boot initrd.img 4.4.0 116 generic initrd.img.old boot initrd.img 4.4.0 112 gener...