关于Linux查找对应的后缀文件的程序

本文介绍了如何使用C++编写代码来搜索特定类型的文件,并对其进行排序。通过定义筛选和排序函数,实现对目录中文件的高效查找和组织。
#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
vector vecDir;



int SelectFile( const struct dirent* pDir )
{
	if( NULL == pDir )
	{
		return 0;
	}

	string strFile = pDir->d_name;
	if( 4 == pDir->d_type )
	{
		string strDir = pDir->d_name;
		if( "." == strDir || ".." == strDir )
		{
			return 0;
		}
		vecDir.push_back( pDir->d_name );
		return 0;
	}

	int n = strFile.rfind( '.' );
	if( -1 == n )
	{
		return 0;
	}
	string strSubStr = strFile.substr( n );
	if( strSubStr != ".cpp")
	{
		return 0;
	}

	return 1;
}


int SortFile( const struct dirent** pLeftDir, const struct dirent** pRightDir )
{
	return 1;
}


bool SearchForLinux(const char* pszDir, vector& vecFiles)
{
	string strDir;
	if( NULL == pszDir )
	{
		strDir = ".";
	}
	else
	{
		strDir = pszDir;
	}

	dirent** ppNameList;
	int n = scandir( strDir.c_str(), &ppNameList, SelectFile, SortFile );
	if( n < 0 )
	{
		int nErr = errno;
		if( 2 == nErr )
		{
			return true;
		}
		cout<<"scandir failed:"<d_name;
		vecFiles.push_back( strFile );
		free( ppNameList[i] );
	}
	free( ppNameList );

	vector vecTempDir;
	vecTempDir = vecDir;
	vecDir.clear();
	for( int i=0; i vecFiles;
	SearchForLinux(NULL, vecFiles);
	for(int i=0; i

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值