如何对文本文件进行定位修改,以及如何统计文件夹文件个数

mazusoest 2008-03-26 04:59:15
读几个文件(不到900个),然后把里面的数据重新整理到一个文件里,要求在文件的开头写上总共读了多少个文件。

目的文件格式如下
count X

frame 1
....
DATA
....
frame N

我大致是这么做的
for(i=0;i<FILE_SUM,i++){
if(文件存在){ //文件名有一定规律
count++;
}
/*将读出的每个文件中的内容写入(追加)到目标文件中*/

}

这时候文件的总数统计出来了,需要把它添加到文件开始的特定位置去,有什么办法实现吗?
望达人指点。
还有,C/C++中能统计制定文件夹中文件的个数吗?
...全文
166 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cad_vc 2008-03-27
  • 打赏
  • 举报
回复
WIN32_FIND_DATA findData;
HANDLE hFind = ::FindFirstFile( dir+"\\*", &findData );
if (hFind != INVALID_HANDLE_VALUE)
{
do {
if (strcmp( findData.cFileName, ".." ) == 0
|| strcmp( findData.cFileName, "." ) == 0)
{
continue;
}

if (findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
}
else
{

}
} while (::FindNextFile( hFind, &findData ));
}
::FindClose( hFind );
DonyUnx 2008-03-27
  • 打赏
  • 举报
回复
直接写覆盖不可以吗,定位到那个位置写,readdir可能是unix里的,呵呵
mazusoest 2008-03-26
  • 打赏
  • 举报
回复
readdir不是C里的吧?

我还是没看明白,数据不能一次写入。

是不是我问题没说明白,
就是现在我要修改一个比较大的文件(*.txt)
不可能将文件数据全部读出然后进行修改了,能不能将文件中的第几行进行替换?
Supper_Jerry 2008-03-26
  • 打赏
  • 举报
回复
sprintf(szTmp,"frame%d", count);
szTmp里面放的就是frame1...X了
DonyUnx 2008-03-26
  • 打赏
  • 举报
回复
opendir和readdir可以检查文件夹里所有文件,替换那个不会,up一下!
mazusoest 2008-03-26
  • 打赏
  • 举报
回复
就是最后用count的值来替换
目的文件格式
count X

frame 1
....
DATA
....
frame N
中的X,这个地方的指针可以用Fseek确定的到,问题是如何用做到只修改这个X。

这里面的每一个Frame 对应的数据是源文件中的一个文件,每读完一个源文件,就把这个文件中的内容整理后接在目的文件后面(fp=fopen(sw.c_str(),"app");)
ouyh12345 2008-03-26
  • 打赏
  • 举报
回复
这时候文件的总数统计出来了,需要把它添加到文件开始的特定位置去,有什么办法实现吗?
特定位置是怎么计算的?

for(i=0;i <FILE_SUM,i++){
if(文件存在){ //文件名有一定规律
count++;
}

在循环里做添加到文件开始的特定位置的工作
  • 打赏
  • 举报
回复
枚举目录下的文件
findfirstfile
findnextfile

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧