首页 > 其他分享 >C语言-读取一个目录中的文件,并将文件名写入数组

C语言-读取一个目录中的文件,并将文件名写入数组

时间:2023-10-18 16:45:46浏览次数:41  
标签:HANDLE 读取 文件名 写入 C语言 char 数组 include

C语言-读取一个目录中的文件,并将文件名写入数组

注意点:

  1. 文件名是字符串,放入数组,需要数组二维数组,array[m][n], m表示字符串的个数,n表示字符串的长度
  2. 使用函数char* strcpy(char* destination,const char* source),
    例如:
char strings[3][10];
strcpy(strings[0], "hello");

完成代码如下:

# include <stdio.h>
#include <iostream>
#include <fstream>
# include <io.h>
# include <string.h>
using namespace std;

void findfile(string path, string mode)
	{   
	    char origFileName[1000][1000] = { 0 };
	    uint32_t fileCount = 0;
        uint32_t i = 0;
		_finddata_t file;
		intptr_t HANDLE;
		string Onepath = path + mode;
		HANDLE = _findfirst(Onepath.c_str(), &file);
    	
		if (HANDLE == -1L)
		{
			cout << "can not match the folder path" << endl;
			system("pause");
		}
		do {
			
			
			//判断是否有子目录  
			if (file.attrib & _A_SUBDIR)
			{
				//判断是否为"."当前目录,".."上一层目录
				if ((strcmp(file.name, ".") != 0) && (strcmp(file.name, "..") != 0)) //比较字符串自str1和str2是否相同。如果相同则返回0;
				{
					string newPath = path + "\\" + file.name;
					findfile(newPath, mode);
				}
			}
			else
			{   
				cout << file.name << " " << endl;
				printf("%d: %s\n", i, file.name);
				strcpy(origFileName[i], file.name);
			}
			
			fileCount ++;
			i++;
			
		} while (_findnext(HANDLE, &file) == 0);
		_findclose(HANDLE);
		printf("files total: %d\n", fileCount);
		
		for (int j = 0; j < fileCount; j++){
			printf("file name: %s\n", origFileName[j]);
		}
        
	}
	
	
int main(int argc, char **argv)
{   
	string mode = "\\*.txt";
	string path = "F:\\text";
	findfile(path, mode);
	
	system("pause");
	return 0;
}

结果显示:

标签:HANDLE,读取,文件名,写入,C语言,char,数组,include
From: https://www.cnblogs.com/bonne-chance/p/17772722.html

相关文章

  • HBase-通过外部表将Hive数据写入到HBase
    a)准备测试数据这里准备的csv文件data_test.csv,内容没用''包裹,逗号作为列分隔符171301,燕青,男,27,发展部171207,武松,男,39,开发部171307,李逵,男,41,开发部320812,宋江,男,45,战略部321009,顾大嫂,女,38,后勤部171312,卢俊义,男,43,发展部  b)hbase创建表creat......
  • 3.5-io读取与存储
    3.5-io读取与存储  3.5.1有哪些io方式¶数据分析阶段的重点:分析、建模3.5.2读取和存储csv¶存储、读取、索引设置数据追加3.5.3读取和存储excel¶存储、读取、工作表设置数据追加 In [ ]:importpandasaspdimportnumpyasnpd......
  • C语言---去掉字符串中的空格
    有时候,我们会遇到,字符串中有空格,那如何删除呢?要删除空格,就需要找到空格,找到空格,就需要遍历字符串。下面是示例代码:(分别使用了for和while循环)#include<stdio.h>#include<stdlib.h>#include<ctype.h>voidfun(char*str){ inti=0; char*p; /*标记:p=str表示指针指......
  • C语言 内存布局
    GCC编译预处理->编译->汇编->链接预处理:头⽂件包含、宏替换、条件编译、删除注释...编译:主要进⾏词法、语法、语义分析等,检查⽆误后将预处理好的⽂件编译成汇编⽂件...汇编:将汇编⽂件转换成⼆进制⽬标⽂件...链接:将项⽬中的各个⼆进制⽂件+所需的库+启动代码链接成可执⾏⽂......
  • C语言-结构体使用
    C语言-结构体使用#include<stdio.h>#include<stdlib.h>#include<string.h>//结构体/*结构体定义*/structPerson{ charname[20]; intage;};intmain(){/*结构体赋值*/ structPersonperson1={"Tom",20 }; printf("Name:%s,age:......
  • C语言-数组初始化方式
    C语言-数组初始化方式#include<stdio.h>#include<string.h>//数组初始化intmain(){ //方式1:{0} intarr1[3]={0}; for(inti=0;i<3;i++){ printf("arr1[%d]=%d\n",i,arr1[i]); } //方式2:for循环 intarr2[3]; for(inti=0;i<3;i++)......
  • xlwings 如何读取可见行 剔除隐藏行和未筛选行
    xlwings如何读取可见行剔除隐藏行和未筛选行在xlwings中,读取可见行并剔除隐藏行和未筛选行的功能并不直接支持。xlwings的主要功能是通过Python与Excel进行交互,包括读取和写入数据,以及调用VBA代码12。然而,处理隐藏行或筛选行通常需要使用Excel的高级功能,这些功能在xlwings中可能......
  • C语言部分学习知识记录
    导包#include时候使用<>和""的区别://<filename.h>->去系统存放头文件的位置找.h文件//"filename.h”->去当前目录寻找头文件,如果没找到再去系统存放头文件的位置找.h文件main函数中参数意义//intargc->从命令行传入的参数个数//char*argv[]->存放参数的数组//char*env[......
  • 【C语言】数组指针
    【C语言】数组指针顾名思义,数组指针是指向数组的指针。例如,p是一个指向含有3个int元素的一维数组的指针:int(*p)[3];//圆括号的优先级更高,让p先与*结合再与[]结合用法:#include<stdio.h>//voiddisplay1(intp[][3])//等价下行写法voiddisplay......
  • 初入c语言学习
        hello,我是一名大一新生,2023/8/1开始在视频上跟着学习c语言。回顾前两个月,我对c语言的认识已经不停留在一门高深莫测的技术,也让我逐渐清晰自己想要什么,当然,与此相对应的就是付出比在暑假期间更多学习时间的决心。    在学习前,因对c语言认识有限,或者说对计算机这......