如何依次读取文件夹中的txt文件并处理其数据?
各位前辈,我想依次地读取文件夹中的txt文档,并且处理里面的数据。查了很多资料都说要用FindFirstFile
和FindNextFile.但是因为我是新手,觉得这个难度好大。。。
可不可以这样做呢?
使用循环,首先定义一个FILE *fp文件指针,让其指向要读的文件夹中的第一个txt,然后读取数据进行处理。第一个
txt搞定之后,*fp指向下一个txt,然后再处理数据,依次类推直到处理完所有的txt。。。。。
但是总感觉fp不能这样做。。。因为fp应该不能自动指向下一个文件名吧?
小妹是最近才接触到C语言中的文本读取操作的,跪求各位大侠指导。。。。查了好长时间的资料
还是一头雾水。。。。泪奔了。。。
[解决办法]
#include<io.h>
#include<stdio.h>
int main()
{
long Handle;
struct _finddata_t FileInfo;
if((Handle=_findfirst("D:\\*.txt",&FileInfo))==-1L)
printf("没有找到匹配的项目\n");
else
{
printf("%s\n",FileInfo.name);
while( _findnext(Handle,&FileInfo)==0)
printf("%s\n",FileInfo.name);
_findclose(Handle);
}
return 0;
}
WIN32_FIND_DATA FindFileData;
HANDLE hFind = FindFirstFile("*.txt", &FindFileData);
while (hFind != INVALID_HANDLE_VALUE)
{
<do stuff with FindFileData Here>
if (!FindNextFile(hFind, &FindFileData))
{
FindClose(hFind);
hFind = INVALID_HANDLE_VALUE;
}
}
//读文件d:\\alldirs.txt的内容即C:\\下所有子目录的名字
请记住,能用shell命令获取文件、文件夹信息或者操作文件、文件夹最好用shell命令获取或者操作,而不要用各种API获取或者操作,因为当遇到非法文件夹名或非法文件名或非法文件长度、非法文件日期、压缩文件、链接文件、稀疏文件……等各种意料之外的情况时,API会处理的不全面或陷入死循环,而shell命令不会。