获取某文件夹下的所有文件名(包括文件夹名)

#include <io.h>
#include <string.h>
#include <fstream>
/*
文件信息读取结构体 _finddata_t
struct _finddata_t      
{            
	unsigned attrib; //文件属性的存储位置。它存储一个unsigned单元,用于表示文件的属性。
	//文件属性是用位表示的,主要有以下一些:
	//_A_ARCH(存档)、 _A_HIDDEN(隐藏)、_A_NORMAL(正常)、_A_RDONLY(只读)、_A_SUBDIR(文件夹)、_A_SYSTEM(系统)。
	time_t time_create;  //文件创建的时间.time_tm秒数
	time_t time_access; //文件最后一次被访问的时间  
	time_t time_write; //文件最后一次被修改的时间
	_fsize_t size;      //文件的大小(字节数表示)
	char name[_MAX_FNAME];   //文件的文件名,_MAX_FNAME表示文件名的最大长度
};
long _findfirst( char *filespec, struct _finddata_t *fileinfo );
作用:获取存储文件信息的结构体
参数:filespec:文件路径
返回值: 成功 返回一个查找用的long型句柄,失败返回-1

int _findnext( long handle, struct _finddata_t *fileinfo );
作用:查找下一个文件
参数:
		 handle:即由_findfirst函数返回回来的句柄。
		 fileinfo:文件信息结构体的指针。找到文件后,函数将该文件信息放入此结构体中。
返回值: 成功返回0,失败返回1

int _findclose( long handle );
作用:关闭文件信息查找
返回值:成功返回0,失败返回-1。
参数:
 handle :_findfirst函数返回回来的句柄。
*/

//获取文件夹下所有文件名
void getAllFiles(const string& path, vector<string>& files) {
	//文件句柄
	intptr_t hFile = 0;//intptr_t:x86编译时int,X64时long long
	//文件信息
	struct _finddata_t fileinfo;  //文件信息读取结构
	string p;  //string一个赋值函数:assign(str):把str拷贝给p,append(str):在字符串结尾追加str
	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);  //寻找下一个,成功返回0,否则-1

		_findclose(hFile);
	}
}
 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
通过使用Python中的os模块和xlrd3包,我们可以轻松地获取文件夹下的所有Excel文件的文件名。首先,我们需要在Python脚本中导入这两个模块。然后,我们可以使用os模块的listdir()函数来获取指定路径下的所有文件的文件名。接下来,我们可以使用xlrd3包来检查文件是否为Excel文件。如果是,则将其文件名添加到列表中。下面是一段基本的Python代码示例来演示如何实现这个任务: ```python import os import xlrd # 定义文件夹路径 folder_path = 'C:/Users/username/Desktop/example_folder' # 初始化一个空的列表,用于存储所有Excel文件的文件名 excel_files = [] # 获取指定路径下的所有文件的文件名 for filename in os.listdir(folder_path): # 检查文件名是否以'.xlsx'或'.xls'结尾,如果是则认为是Excel文件 if filename.endswith('.xlsx') or filename.endswith('.xls'): # 如果是Excel文件,则将其文件名添加到excel_files列表中 excel_files.append(filename) # 打印所有Excel文件的文件名 print(excel_files) ``` 在这个示例中,我们定义了一个包含"example_folder"路径的变量。此路径下的所有Excel文件的文件名将被获取。然后,我们初始化一个空列表,用于存储所有Excel文件的文件名。接下来,我们使用os.listdir()函数获取指定路径下的所有文件的文件名,并且使用endswith()方法检查文件名是否以".xlsx"或".xls"结尾。如果是,则将该文件名添加到excel_files列表中。最后,我们打印了excel_files列表中所有Excel文件的文件名。 通过这个示例代码,我们可以清楚地了解如何在Python中通过xlrd3获取文件夹下的所有Excel文件的文件名

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值