注册 登录
编程论坛 C++ Builder

求助 C++BULIDER6.0下通过api函数编写遍历文件夹下文件的程序报错

w414009984 发布于 2010-12-29 20:46, 1941 次点击
求助 C++BULIDER6.0下通过api函数编写遍历文件夹下文件的程序报错
代码如下
AnsiString c1;
AnsiString strtemp;
HANDLE hFile;
WIN32_FIND_DATA fileinfo;
DWORD errorcode = 0;

    hFile=FindFirstFile(Edit1->Text.c_str(),&fileinfo);
    while(hFile!=INVALID_HANDLE_VALUE&&errorcode!=ERROR_NO_MORE_FILES)
    {
    strtemp=fileinfo.cFileName;
    FindNextFile(hFile,&fileinfo);
    errorcode=GetLastError();
    }
    if(errorcode==ERROR_NO_MORE_FILES)
    {
     ShowMessage("检索结束");
    }
    CloseHandle(hFile);

Edit1->Text.c_str()为该文件夹地址。
我有两个问题第一个是进行遍历时strtemp获取的文件名前两次分别为"."   ".."  之后才是文件夹下的文件的文件名这该怎么修改?
第二个问题是执行CloseHandle(hFile);后会报错提示错误为"External exception c0000008"   跪求大家帮忙解决
1 回复
#2
jssmartstar2011-01-23 16:04
第一个问题
好像没有办法改变他的搜索行为,只能用判断语句过滤掉“.”和 “..”

第二个问题
应该用FindClose,而不是CloseHandle

[ 本帖最后由 jssmartstar 于 2011-1-23 16:08 编辑 ]
1