广告招募

当前位置:全球工厂网 > 技术中心 > 所有分类

C++Builder 文件搜寻与列表

2026年03月29日 09:25:36      来源:重庆微芯智软科技有限责任公司 >> 进入该公司展台      阅读量:5

分享:

void __fastcall CrnFindFile(String strDir, String strFileExt, TStrings *pList)

{

    WIN32_FIND_DATA wfd;

    String strFileName;

    if (strDir.LastDelimiter("/") != strDir.Length())

        strDir += "/";

    HANDLE hFind = ::FindFirstFile((strDir + "*.*").c_str(), &wfd);

    if (INVALID_HANDLE_VALUE != hFind)

    {

        do

        {

            strFileName = String(wfd.cFileName);

            if (strFileName == "." || strFileName == "..")

                continue;

            // 如果是子目录就进入子目录搜索

            if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)

                CrnFindFile(strDir + strFileName + "/", strFileExt, pList);

            // 将指定扩展名的文件名加入到列表中

            if (ExtractFileExt(strFileName).UpperCase() == strFileExt)

                pList->Add(strDir + strFileName);

        } while(::FindNextFile(hFind, &wfd));

    }

    ::FindClose(hFind);

}

void __fastcall TForm1::Button1Click(TObject *Sender)

{

    CrnFindFile("D://ccrun/", ".MP4", Memo1->Lines);

}

版权与免责声明:
1.凡本网注明"来源:全球工厂网"的所有作品,版权均属于全球工厂网,转载请必须注明全球工厂网。违反者本网将追究相关法律责任。
2.企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
3.本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。 4.如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系。