CAA和C++获取文件夹内所有文件名称

C++

void Manage::GetAllFiles( string path, vector<string>& files)//获取一个文件夹下所有文件
    {
        long   hFile   =   0;
        //文件信息
        struct _finddata_t fileinfo;
        string p;
        if((hFile = _findfirst(p.assign(path).append("\\*").c_str(),&fileinfo)) !=  -1)
        {
            do
            {
                if((fileinfo.attrib &  _A_SUBDIR))
                {
                    if(strcmp(fileinfo.name,".") != 0  &&  strcmp(fileinfo.name,"..") != 0)
                    {
                        files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
                        GetAllFiles( p.assign(path).append("\\").append(fileinfo.name), files );
                    }
                }
                else
                {
                    files.push_back(p.assign(path).append("\\").append(fileinfo.name) );
                }

            }while(_findnext(hFile, &fileinfo)  == 0);

            _findclose(hFile);
        }
    }

CAA

int CATAECAddActionsComboDlg::GetAllFiles(CATUnicodeString sPath, CATListOfCATUnicodeString& osFilePathList)
    {
        int dStatus = 0;
        CATDirectory pDir;

        CATLibStatus status = CATOpenDirectory(sPath.ConvertToChar(), &pDir);
        if (CATLibSuccess == status)
        {
            int EndOfDir = 0;
            CATDirectoryEntry Entry;

            while ((EndOfDir != 1) && (CATLibSuccess == status))
            {
                status = ::CATReadDirectory(&pDir, &Entry, &EndOfDir);
                if ((CATLibSuccess == status) && (EndOfDir != 1))
                {
                    CATUnicodeString sTextName(Entry.name);
                    if (!(sTextName.IsNull()) && sTextName != "." && sTextName != "..")
                    {
                        osFilePathList.Append(sTextName);
                    }
                }
            }

            status = ::CATCloseDirectory(&pDir);
            if (CATLibError == status)
                dStatus = 0;
            else if (osFilePathList.Size() > 0)
                dStatus = 1;
        }
        else {
            cout << "Error : CATOpenDirectory is Failed !" << endl;
            dStatus = 0;
        }

        return dStatus;
    }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值