如何遍历出所有的文件名(a.ini、b.ini、c.ini…)
Wince不是很熟,求帮忙,谢了
8 个解决方案
#1
和 PC 差不多是一样的
hFind = ::FindFirstFile(CurrentFullPath,&FindFileData);
if(hFind != INVALID_HANDLE_VALUE)
{
do
{
DWORD dwDirAttr = FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
if(FILE_ATTRIBUTE_DIRECTORY != dwDirAttr) // 判断条件自己修改
{
......
}
}while(::FindNextFile(hFind,&FindFileData));
}
#2
之前我用过这个了,但返回的FindFileData.cFileName不是文件名,而是路径的文件夹名
#3
以上是工程中现成的代码,FindFileData.cFileName 是文件名,而不是 LZ 所说的什么路径文件夹名。
LZ 要不就把你的代码弄出来,看看是什么问题。
如果你的目录中有子目录,肯定是会先找到这些子目录的,然后根据属性来判断是文件、还是子目录,就是我注释写的那句话。
#4
判断条件没进入,没有找到目录?
WIN32_FIND_DATA FindFileData;
memset(FindFileData.cFileName, 0, sizeof(FindFileData.cFileName));
HANDLE hFind = FindFirstFile(L"\\FlashDev\\sound\\",&FindFileData);
if(hFind != INVALID_HANDLE_VALUE)
{
do
{
DWORD dwDirAttr = FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
if(FILE_ATTRIBUTE_DIRECTORY != dwDirAttr) // 目录
{
wchar_t filename[260] = {0,};
swprintf(filename,L"%s",FindFileData.cFileName);
wprintf(L"==== filename=%s \n", filename);
}
}while(::FindNextFile(hFind,&FindFileData));
}
#5
FindFileData.dwFileAttributes值是16
#6
FindFirstFile(L"\\FlashDev\\sound\\",&FindFileData); 你这样只能判断文件夹是否存在
FindFirstFile(L"\\FlashDev\\sound\\*.*",&FindFileData);要找文件最好是这样。替换通配符可以指定更具体的
如 *.c, 找c文件。
不知道你弄清楚了没?
FindFirstFile(L"\\FlashDev\\sound\\*.*",&FindFileData);要找文件最好是这样。替换通配符可以指定更具体的
如 *.c, 找c文件。
不知道你弄清楚了没?
#7
FindFirstFile(L"\\FlashDev\\sound\\*",&FindFileData)
更简单用一个*应该也可以。
更简单用一个*应该也可以。
之前我用过这个了,但返回的FindFileData.cFileName不是文件名,而是路径的文件夹名
以上是工程中现成的代码,FindFileData.cFileName 是文件名,而不是 LZ 所说的什么路径文件夹名。
LZ 要不就把你的代码弄出来,看看是什么问题。
如果你的目录中有子目录,肯定是会先找到这些子目录的,然后根据属性来判断是文件、还是子目录,就是我注释写的那句话。
判断条件没进入,没有找到目录?
WIN32_FIND_DATA FindFileData;
memset(FindFileData.cFileName, 0, sizeof(FindFileData.cFileName));
HANDLE hFind = FindFirstFile(L"\\FlashDev\\sound\\",&FindFileData);
if(hFind != INVALID_HANDLE_VALUE)
{
do
{
DWORD dwDirAttr = FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
if(FILE_ATTRIBUTE_DIRECTORY != dwDirAttr) // 目录
{
wchar_t filename[260] = {0,};
swprintf(filename,L"%s",FindFileData.cFileName);
wprintf(L"==== filename=%s \n", filename);
}
}while(::FindNextFile(hFind,&FindFileData));
}
#8
FindFirstFile(L"\\FlashDev\\sound\\",&FindFileData); 你这样只能判断文件夹是否存在
FindFirstFile(L"\\FlashDev\\sound\\*.*",&FindFileData);要找文件最好是这样。替换通配符可以指定更具体的
如 *.c, 找c文件。
不知道你弄清楚了没?
哦,确实是少了*.*的原因,加了之后成功了,非常感谢
#1
和 PC 差不多是一样的
hFind = ::FindFirstFile(CurrentFullPath,&FindFileData);
if(hFind != INVALID_HANDLE_VALUE)
{
do
{
DWORD dwDirAttr = FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
if(FILE_ATTRIBUTE_DIRECTORY != dwDirAttr) // 判断条件自己修改
{
......
}
}while(::FindNextFile(hFind,&FindFileData));
}
#2
和 PC 差不多是一样的
hFind = ::FindFirstFile(CurrentFullPath,&FindFileData);
if(hFind != INVALID_HANDLE_VALUE)
{
do
{
DWORD dwDirAttr = FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
if(FILE_ATTRIBUTE_DIRECTORY != dwDirAttr) // 判断条件自己修改
{
......
}
}while(::FindNextFile(hFind,&FindFileData));
}
之前我用过这个了,但返回的FindFileData.cFileName不是文件名,而是路径的文件夹名
#3
之前我用过这个了,但返回的FindFileData.cFileName不是文件名,而是路径的文件夹名
以上是工程中现成的代码,FindFileData.cFileName 是文件名,而不是 LZ 所说的什么路径文件夹名。
LZ 要不就把你的代码弄出来,看看是什么问题。
如果你的目录中有子目录,肯定是会先找到这些子目录的,然后根据属性来判断是文件、还是子目录,就是我注释写的那句话。
#4
之前我用过这个了,但返回的FindFileData.cFileName不是文件名,而是路径的文件夹名
以上是工程中现成的代码,FindFileData.cFileName 是文件名,而不是 LZ 所说的什么路径文件夹名。
LZ 要不就把你的代码弄出来,看看是什么问题。
如果你的目录中有子目录,肯定是会先找到这些子目录的,然后根据属性来判断是文件、还是子目录,就是我注释写的那句话。
判断条件没进入,没有找到目录?
WIN32_FIND_DATA FindFileData;
memset(FindFileData.cFileName, 0, sizeof(FindFileData.cFileName));
HANDLE hFind = FindFirstFile(L"\\FlashDev\\sound\\",&FindFileData);
if(hFind != INVALID_HANDLE_VALUE)
{
do
{
DWORD dwDirAttr = FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
if(FILE_ATTRIBUTE_DIRECTORY != dwDirAttr) // 目录
{
wchar_t filename[260] = {0,};
swprintf(filename,L"%s",FindFileData.cFileName);
wprintf(L"==== filename=%s \n", filename);
}
}while(::FindNextFile(hFind,&FindFileData));
}
#5
FindFileData.dwFileAttributes值是16
#6
FindFirstFile(L"\\FlashDev\\sound\\",&FindFileData); 你这样只能判断文件夹是否存在
FindFirstFile(L"\\FlashDev\\sound\\*.*",&FindFileData);要找文件最好是这样。替换通配符可以指定更具体的
如 *.c, 找c文件。
不知道你弄清楚了没?
FindFirstFile(L"\\FlashDev\\sound\\*.*",&FindFileData);要找文件最好是这样。替换通配符可以指定更具体的
如 *.c, 找c文件。
不知道你弄清楚了没?
#7
FindFirstFile(L"\\FlashDev\\sound\\*",&FindFileData)
更简单用一个*应该也可以。
更简单用一个*应该也可以。
之前我用过这个了,但返回的FindFileData.cFileName不是文件名,而是路径的文件夹名
以上是工程中现成的代码,FindFileData.cFileName 是文件名,而不是 LZ 所说的什么路径文件夹名。
LZ 要不就把你的代码弄出来,看看是什么问题。
如果你的目录中有子目录,肯定是会先找到这些子目录的,然后根据属性来判断是文件、还是子目录,就是我注释写的那句话。
判断条件没进入,没有找到目录?
WIN32_FIND_DATA FindFileData;
memset(FindFileData.cFileName, 0, sizeof(FindFileData.cFileName));
HANDLE hFind = FindFirstFile(L"\\FlashDev\\sound\\",&FindFileData);
if(hFind != INVALID_HANDLE_VALUE)
{
do
{
DWORD dwDirAttr = FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY;
if(FILE_ATTRIBUTE_DIRECTORY != dwDirAttr) // 目录
{
wchar_t filename[260] = {0,};
swprintf(filename,L"%s",FindFileData.cFileName);
wprintf(L"==== filename=%s \n", filename);
}
}while(::FindNextFile(hFind,&FindFileData));
}
#8
FindFirstFile(L"\\FlashDev\\sound\\",&FindFileData); 你这样只能判断文件夹是否存在
FindFirstFile(L"\\FlashDev\\sound\\*.*",&FindFileData);要找文件最好是这样。替换通配符可以指定更具体的
如 *.c, 找c文件。
不知道你弄清楚了没?
哦,确实是少了*.*的原因,加了之后成功了,非常感谢