MFC获取某个路径文件夹下所有文件名

需求:调用本机的播放器播放某个文件下的MP4的文件

应用场景:获取某个文件夹下的所有文件名,播放指定的文件

Step1 获取某个文件夹下的所有文件名

void Cxxx_Dialog::GetFileFromDirectory(CString csDirPath, vector<CString> &vctPath)
{
	csDirPath+="*.mp4";
	HANDLE file;    
	WIN32_FIND_DATA fileData;    
	file = FindFirstFile(csDirPath.GetBuffer(), &fileData);  
	if (file !=INVALID_HANDLE_VALUE)
	{
		vctPath.push_back(fileData.cFileName);   
		while(FindNextFile(file, &fileData))
		{
			vctPath.push_back(fileData.cFileName);
		} 
	}
}

参数说明:

    参数1:csDirPath 某个文件夹的路径例如 D://testFile//

    参数2:vctPath 用来接收指定文件夹下的所有文件名

函数说明:主要是使用 FindFirstFile 和 FindNextFile 这两个FILE操作相关的接口 来实现这个功能。

 

Step2 播放指定的路径的文件

if(PathFileExists(strPlayPathName))
    ShellExecute(NULL, _T("Open"), strPlayPathName, NULL, NULL, SW_SHOWNORMAL);

参数说明:strPlayPathName这个参数是完整的文件路径 例如:D://testFile//1.MP4

通过ShellExecute来调用外部的程序软件

根据MSDN提供的说明可知:

HINSTANCE ShellExecuteA(
  HWND   hwnd,    //父窗口的句柄,用于显示UI或错误消息。如果操作未与窗口关联,则此值可以为NULL。
  LPCSTR lpOperation, //可执行的操作 如:edit,explore,find,open,print,NULL
  LPCSTR lpFile,  //执行文件的路径
  LPCSTR lpParameters,    //如果exe类型的文件,则这个参数是传入exe的参数之一;否则为NULL即可
  LPCSTR lpDirectory,    //同上 执行exe相关的路径设置
  INT    nShowCmd        //显示的方式; 如:SW_HIDE,SW_SHOW 等等
);

具体的说明可参照:

https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shellexecutea

 

文章处理文件的方式参考:

https://blog.csdn.net/HW140701/article/details/53164247

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值