最近發(fā)現(xiàn)手機(jī)越來越卡,后來發(fā)現(xiàn)是QQ占用的內(nèi)存太大了,尤其是居然有1.5G之多的shortvideo短視頻,我這種人,老覺得這都是生活的記錄,舍不得刪,
那就導(dǎo)入到電腦上吧,但是導(dǎo)入之后發(fā)現(xiàn)是這個樣子的。。。
點(diǎn)開之后是這個樣子的:
學(xué)編程的怎么可能一個個的復(fù)制粘貼出來,當(dāng)然是讓程序替我們干這種活啊,大概想了一下思路: 首先在shortvideo文件夾下進(jìn)行一次磁盤遍歷,然后每找到一個mp4文件就把它復(fù)制出去到指定的目錄下。 那么就是兩個函數(shù),一個遍歷函數(shù),一個復(fù)制函數(shù)
文件查找是大一時學(xué)過的,直接拿來用,復(fù)制的話就是把mp4文件以二進(jìn)制方式讀取,存入到一個超大的數(shù)組里,然后再以二進(jìn)制的方式寫入新目錄。幾行代碼輕松搞定
直接上代碼吧,萬一以后自己又要用 (一個多G,十幾秒左右就完成復(fù)制了,膜…)
#include<stdio.h>#include<string.h>#include<io.h>#include<iostream>#include<string>using namespace std;char ch[9999999999];char str[260];char newstr[260];void take(char Dir[],char newDir[])//復(fù)制函數(shù){ FILE *f1,*f2; f1=fopen(Dir,"rb"); f2=fopen(newDir,"wb"); fseek(f1,0L,SEEK_END); int lens=ftell(f1);//取出原文件大小 rewind(f1); fread(ch,lens,1,f1); fwrite(ch,lens,1,f2); fclose(f1);fclose(f2);}void SearchDir(char *dir)//遍歷函數(shù){ _finddata_t ffblk;//文件結(jié)構(gòu)體定義一個對象 long handle;//句柄 char tmp[1000]; strcpy(tmp, dir); strcat(tmp, "http://*.*"); handle = _findfirst(tmp,&ffblk); long flag = 0; while (!flag) { if (ffblk.attrib == _A_SUBDIR) { if(strcmp(ffblk.name,".") == 0 || strcmp(ffblk.name,"..") == 0){ //篩掉這兩個默認(rèn)的文件夾,一個為當(dāng)前目錄,一個為上一級目錄 flag = _findnext(handle, &ffblk); continue; } //寫的比較潦草 哦,再附張結(jié)果圖。。新聞熱點(diǎn)
疑難解答