C++如何实现 统计 一个文件夹中的文件的 个数 并用 FOR循环 依次读取文件的文件名

如题所述

给出 临时工作文件名和路径,要查的文件夹路径和文件夹名。
用 DOS 命令获文件名

#include <stdio.h>
#include <stdlib.h>
#define Buff_size 4096
FILE *fin;
void main (int argc, char *argv[])
{
char current_dir[72], namelist[72],current_file_name[72];
char command[200];
int i,j,n=0;
char *buff;

buff = (char *) malloc( Buff_size * sizeof (char));
if (!buff) {
printf("\007No enough memory -- Can not alloc the Buff\n");
exit(2);
};
strcpy(namelist,"C:\\temp\\abc.lis"); // 临时工作文件名和路径
strcpy(current_dir, "D:\\zzz"); //要查的文件夹路径和文件夹名

sprintf(command,"DIR/B/A-D %s > %s", current_dir, namelist);
system(command);
if ( (fin = fopen(namelist,"r") ) == NULL ) {
printf("\007Cann't open work file: %s ", namelist);exit(1);
};

while ( fgets( current_file_name, 72, fin) !=NULL ) n=n+1;
rewind(fin);
printf("\007total %d files\n",n);
for (i=0;i<n;i++){
if ( fgets( current_file_name, 72, fin) ==NULL) exit(0);
printf("%s",current_file_name);
}
exit(0);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-01
#include<string>
.....
string str;
char ch[50];
....

cin>>str;
for (long a=0;a<str.size();++a)
{
ch[a]=str[a];
}
freopen(ch,"r",stdin);

.....

这样加进去就可以了
另外,虚机团上产品团购,超级便宜

C\/C++编程遍历文件夹,统计当前文件个数,输出文件名
using namespace std;void searchFileInDirectroy( const string& dir, vector<string>& outList ){ WIN32_FIND_DATA findData;HANDLE hHandle;string filePathName;string fullPathName;filePathName = dir;filePathName += "\\\\*.*";hHandle = FindFirstFile( filePathName.c_str(), &findData );...

C++如何统计文件夹下文件个数
1.log 文件这个比较好:dir \/b | find \/v \/c ":" > 1.log===扩展:包含子目录:C++代码tree \/F | find \/c "." \/\/ 带点的文件 tree \/F | find \/v \/c "\/" \/\/ \/是文件命名时禁止使用的,统计全部文件 Linux 下:C++代码# ls -l * |grep "^-"|wc -l \/\/ to count files # ls -l ...

C\/C++编程遍历文件夹,统计当前文件个数,输出文件名
&wfd);if (hFind == INVALID_HANDLE_VALUE) \/\/ 如果没有找到或查找失败return;do{if (wfd.cFileName[0] == '.')continue; \/\/ 过滤这两个目录if (wfd.dwFileAttributes

用FindFirstFile和FindNestFile编写一个遍历文件夹下所有文件的代码怎么...
} if (c_file.attrib & _A_SUBDIR) { \/\/如果是子文件夹,递归调用 string strSubDir = strDir.substr(0, strDir.length() - 3) + c_file.name + "\\\\*.*"; ShowDir(strSubDir); } else { printf("Name:%-20s LastWrite:%s", c_file.name, ctime(&(c_...

怎么用c++将一个文件夹中的所有的TXT文件同时读取,(文件名有规律)
使用for循环加文件操作函数即可读取txt文件当中的数组。1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、...

C++怎样遍历文件夹然后取得目录下的文件名
include <sys\/types.h>#include <dirent.h>#include <stdio.h>#include <stdlib.h>int main() { DIR *dir; struct dirent *ptr; if ((dir=opendir("D:\\\\rain")) == NULL) { perror("Open dir error..."); exit(1); } while ((ptr=readdir(dir)) != ...

C++怎么获取一个文件夹中jpg文件的数量 只要数量 用于后面的循环
正规一点的做法,就是打开文件节点,遍历每个节点,判断扩展名,如果为JPG则累加,最终得到总数量 偏门一点,但是更简单的做法就是调用 用system调用dir *.jpg 文件夹路径 > tmp.TXT 然后打开tmp.TXT,读文件,计算行数,再减掉dir结尾统计的行数(这个是固定的,你打一下就知道了)得到的就是JPG总数...

怎么用C\\C++实现对 一个文件夹所有文件的遍历
CFileFind finder;BOOL bWorking = finder.FindFile(%%1+"\\\\*.*");while (bWorking){ bWorking = finder.FindNextFile();if (finder.IsDirectory()){ \/\/finder.GetFilePath();所有文件夹 } else if(finder.IsDots()){} else { \/\/finder.GetFilePath();所有文件 } } ...

c++ 取文件夹中所有文件名 赋值给变量
int main(){ LPFILE_NAME lpFileName = new FILE_NAME[1024];\/\/假设有1024 个文件 memset(lpFileName, 0, 1024*sizeof(FILE_NAME));int iCount = 0;\/\/ _finddata_t file;long lf;int count = 0;\/\/输入文件夹路径 if((lf = _findfirst("D:\\\\360\\\\*.dll", &file))==-1)cou...

c++中怎么把读取文件夹下的所有文件名存入数组
1、在linux平台,可采用目录操作函数,读取当前目录下的文件 include <sys\/types.h> include <dirent.h> \/\/windows开发工具没有这个头文件 include <unistd.h> include <string.h> main(){ DIR * dir;struct dirent * ptr;char file_list[100][40];int i=0;dir = opendir("\/etc\/rc.d")...

相似回答