手机快播的多!mv文件合并软件工具

使用手机快播看完视频后,在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 here
	int 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文件");
	}

}



你可能感兴趣的:(手机快播的多!mv文件合并软件工具)