c++ 在windows 和 linux 获得扩展名是(.xml)文件的文件名

本文提供了一个在Windows和Linux环境下进行文件遍历的示例代码。通过使用标准库和特定于操作系统的API,展示了如何列出指定目录下的所有文件。在Windows下使用_findfirst和_findnext函数,在Linux下则利用opendir和readdir函数。

//windows

#include <stdio.h>

#include <io.h>

#include <string>

 

int main()

{

    std::string sPath = "c://test//*.*";

    _finddata_t file;

    long lHandle;

    if((lHandle = _findfirst(sDir.c_str(), &file)) == -1L)

    {

        printf("can not find file!/n");

        return -1;

    }

 

    while(_findnext(lHandle, &file) == 0)

    {

         std::string s(file.name);

         std::string::size_type pos;

         if(std::string::npos != pos)

         {

             printf("file name:%s /n", s.substr(0, pos));

         }

     }

   

}

 

 

 

 

//linux

#include "stdio.h"

#include "dirent.h"

#include <string>

 

int main()

{

    std::string sPath = "/home/test/";

    struct dirent* pDirent = NULL;

    DIR* pDir;

    if(!(pDir = opendir(sDir.c_str())))

    {

         printf("can not open dir /n");

         return -1;

    } 

   

    while((ptr = readdir(dir)) != NULL)

    {

        std::string sName(pDirent->d_name);

        std::string::size_type pos;

    }

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

        if(std::string::npos != pos)

        {

            printf("file name:%s /n", sName.substr(0, pos));

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值