查找exe同在一个文件夹下的Voices文件夹下的某个MP3是否存在
2010-12-28 20:20
302 查看
Code:
void LoadVoice(TCHAR *lpName)
{
TCHAR appPath[MAX_PATH];
// 获取exe文件夹路径
GetAppPath(appPath,MAX_PATH);
// 获取插件文件夹路径
TCHAR pluginsPath[MAX_PATH];
wsprintf(pluginsPath,"%s//Voices",appPath);
//
TCHAR pluginsPattern[MAX_PATH];
// 文件夹下所有的mp3文件
wsprintf(pluginsPattern,"%s//*.mp3",pluginsPath);
// 存放文件信息
WIN32_FIND_DATA fileinfo;
// 找到第一个文件
HANDLE hFile=FindFirstFile(pluginsPattern,&fileinfo);
DWORD errorcode = 0;
// 定义一个flag为找到的标志
BOOL ifCanFind = FALSE;
while(hFile!=INVALID_HANDLE_VALUE && errorcode!=ERROR_NO_MORE_FILES)
{
TCHAR fileName[MAX_PATH*2];
TCHAR lpVoiceName[MAX_PATH];
// 初始化lpVoiceName
ZeroMemory(lpVoiceName, sizeof(lpVoiceName));
TCHAR *pLastSlash = strrchr(fileinfo.cFileName, '.');
// printf(pLastSlash);
// 得到文件的名称如One.mp3得到One
TCHAR *lp = fileinfo.cFileName;
// 从fileinfo.cFileName中复制n个字符到lpVoiceName中
strncpy(lpVoiceName, fileinfo.cFileName, pLastSlash - fileinfo.cFileName);
// fileinfo.cFileName 的全全文件路径
wsprintf(fileName,"%s//%s",pluginsPath,fileinfo.cFileName);
// 判断是歌声名称是否与声音文件名匹配,如果匹配进行操作
if (0 == strcmp(lpName, lpVoiceName))
{
// AfxMessageBox(lpVoiceName);
// PlayVoice(fileName);
// Sleep(200);
// StopVoice(fileName);
printf("Find out the %s ok/n", lpName);
ifCanFind = TRUE;
break;
}
// 否则就查找下一个文件
else
{
FindNextFile(hFile,&fileinfo);
errorcode=GetLastError();
}
}
if (FALSE == ifCanFind)
printf("Can't find the same mp3!/n");
FindClose(hFile);
}
void LoadVoice(TCHAR *lpName)
{
TCHAR appPath[MAX_PATH];
// 获取exe文件夹路径
GetAppPath(appPath,MAX_PATH);
// 获取插件文件夹路径
TCHAR pluginsPath[MAX_PATH];
wsprintf(pluginsPath,"%s//Voices",appPath);
//
TCHAR pluginsPattern[MAX_PATH];
// 文件夹下所有的mp3文件
wsprintf(pluginsPattern,"%s//*.mp3",pluginsPath);
// 存放文件信息
WIN32_FIND_DATA fileinfo;
// 找到第一个文件
HANDLE hFile=FindFirstFile(pluginsPattern,&fileinfo);
DWORD errorcode = 0;
// 定义一个flag为找到的标志
BOOL ifCanFind = FALSE;
while(hFile!=INVALID_HANDLE_VALUE && errorcode!=ERROR_NO_MORE_FILES)
{
TCHAR fileName[MAX_PATH*2];
TCHAR lpVoiceName[MAX_PATH];
// 初始化lpVoiceName
ZeroMemory(lpVoiceName, sizeof(lpVoiceName));
TCHAR *pLastSlash = strrchr(fileinfo.cFileName, '.');
// printf(pLastSlash);
// 得到文件的名称如One.mp3得到One
TCHAR *lp = fileinfo.cFileName;
// 从fileinfo.cFileName中复制n个字符到lpVoiceName中
strncpy(lpVoiceName, fileinfo.cFileName, pLastSlash - fileinfo.cFileName);
// fileinfo.cFileName 的全全文件路径
wsprintf(fileName,"%s//%s",pluginsPath,fileinfo.cFileName);
// 判断是歌声名称是否与声音文件名匹配,如果匹配进行操作
if (0 == strcmp(lpName, lpVoiceName))
{
// AfxMessageBox(lpVoiceName);
// PlayVoice(fileName);
// Sleep(200);
// StopVoice(fileName);
printf("Find out the %s ok/n", lpName);
ifCanFind = TRUE;
break;
}
// 否则就查找下一个文件
else
{
FindNextFile(hFile,&fileinfo);
errorcode=GetLastError();
}
}
if (FALSE == ifCanFind)
printf("Can't find the same mp3!/n");
FindClose(hFile);
}
相关文章推荐
- 查找程序所在上一级目录中是否存在指定文件夹,不存在就建立,并在其中新建一个txt文件
- 查找文件夹是否存在的函数。
- 杨氏矩阵:有一个二维数组,数组的每行从左到右都是递增的,每列从上到下都是递增的,从这样的数组中查找一个数字是否存在
- 判断一个文件夹是否存在
- 开辟一个二维数组,有10*8个元素,用随机数填充,按照下面的方法用函数实现查找一个数是否存在
- vc判断文件夹是否存在,及创建一个文件夹
- indexOf() 如何判断一个元素在指定数组中是否存在? 找出指定元素出现的所有位置? indexOf()方法 是正序查找,lastIndexOf()是倒叙查找
- 有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N)
- 查找一个文件是否存在
- C# Visual Studio 2005中判断一个文件夹是否存在
- 查找一个数是否存在于一个数组中。该数组分两段有序,第一段的数都大于第二段的数。
- 二维数组中查找是否存在一个数
- //杨氏矩阵 有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N);
- 生成一个一维数组,有10个元素,都用随机数填充,用指针轮询的办法实现函数查找一个数是否存在。
- 在一个每一行从左到右递增每一列从上到下递增的二维数组中查找一个整数是否存在――3
- 关于一个查找数组中是否存在某一个元素的问题
- 在一个每一行从左到右递增每一列从上到下递增的二维数组中查找一个整数是否存在
- 有一个二维数组. 数组的每行从左到右是递增的,每列从上到下是递增的. 在这样的数组中查找一个数字是否存在。 时间复杂度小于O(N);
- C++/VC/MFC查找指定文件或文件夹是否存在
- 杨氏矩阵 中查找一个数字是否存在,时间复杂度小于O(N)