您的位置:首页 > 编程语言 > C语言/C++

遍历目录下所有wav并播放

2016-12-22 01:07 267 查看
#include "windows.h"
#include <wchar.h>
#include <locale.h>
#include "mmsystem.h"

#pragma comment(lib,"winmm.lib")

int find_all_files(wchar_t* lpPath)
{
setlocale(LC_ALL, "chs");
WIN32_FIND_DATA FindFileData;
wchar_t wcPath[MAX_PATH];
wcscpy_s(wcPath, lpPath);
wcscat_s(wcPath, L"\\*.*");
HANDLE hFind = ::FindFirstFile(wcPath, &FindFileData);
if (INVALID_HANDLE_VALUE == hFind)
return -1;

do
{
if (FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
if (wcscmp(FindFileData.cFileName, L".") != 0 && wcscmp(FindFileData.cFileName, L"..") != 0)
{
//发现子目录,递归之
wchar_t szFile[MAX_PATH];
wcscpy_s(szFile, lpPath);
wcscat_s(szFile, L"\\");
wcscat_s(szFile, FindFileData.cFileName);
find_all_files(szFile);
}
}
else
{
if (wcswcs(FindFileData.cFileName, L".wav") != 0) {
wchar_t szFile[MAX_PATH];
wcscpy_s(szFile, lpPath);
wcscat_s(szFile, L"\\");
wcscat_s(szFile, FindFileData.cFileName);
wprintf(L"%s\n", szFile);
sndPlaySound(szFile, SND_SYNC);
}
}
} while (::FindNextFile(hFind, &FindFileData));

::FindClose(hFind);

return 0;
}

int main(int argc, char* argv[])
{
find_all_files(L"C:\\Windows\\Media");
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++