使用手機快播看完視頻後,在p2pcache目錄下形成若干個副檔名為!mv結尾的10M大小的檔案,可以使用DOS的copy /b命令合并它們,但合并時有順序問題(經驗證並不是簡單的按字典排序方式進行的),為此編寫了以下VC6.0程式(高版本VC一樣),只需要將該可執行EXE放在p2pcache的某個檔案夾下運行即可:(來源程式及exe在http://download.csdn.net/detail/dijkstar/4590633 下載)。程式的思路相當簡單,都在注釋中(僅對rmvb格式檔案有效,其他格式沒有實驗過):
void CMergeDlg::OnButton1() {// TODO: Add your control notification handler code hereint i = 0;CString strFile;CFile file;CString strSum;CFileFind finder;BOOL bWorking = finder.FindFile("*.!mv");if (bWorking){//// 用來尋找 .!mv 前面的字串部分(即檔案名稱)//finder.FindNextFile();CString strTmp = finder.GetFileName();int start = strTmp.Find ("rmvb_");CString strTmp2 = strTmp.Left(start);CString strTmp3 = strTmp2 + "rmvb_";//// 從下標_0 開始尋找.!mv 檔案,//while (1){strFile.Format("%s%d.!mv", strTmp3, i);if (::GetFileAttributes((LPCTSTR )strFile) == -1){break;}strSum += strFile;strSum += "+";i++;}//將最後一個“+”去掉if (strSum.GetLength()-1 == strSum.ReverseFind('+')){strSum.TrimRight("+");}//// 形成DOS命令的參數 “copy/b 1.x+2.x+3.x+.......+n.x 目的檔案”//CString str = "copy/b ";str += strSum;str += " ";str += strTmp2;str += "rmvb";//// 執行 Copy命令//system(str);}else{AfxMessageBox("未找到*.!mv檔案");}}