读书人

依次读取文件夹中的文件解决方案

发布时间: 2012-03-11 18:15:39 作者: rapoo

依次读取文件夹中的文件
如题,如何依次读取一个文件夹下的所有文件?



[解决办法]
参考MS的库函数_findfirst, _findnext

C/C++ code
#include <stdio.h>#include <stdlib.h>#include <io.h>#include <time.h>int main( void ){   struct _finddata_t c_file;   intptr_t hFile;   // Find first .c file in current directory    if( (hFile = _findfirst( "*.c", &c_file )) == -1L )      printf( "No *.c files in current directory!\n" );   else   {      printf( "Listing of .c files\n\n" );      printf( "RDO HID SYS ARC  FILE         DATE %25c SIZE\n", ' ' );      printf( "--- --- --- ---  ----         ---- %25c ----\n", ' ' );      do {         char buffer[30];         printf( ( c_file.attrib & _A_RDONLY ) ? " Y  " : " N  " );         printf( ( c_file.attrib & _A_SYSTEM ) ? " Y  " : " N  " );         printf( ( c_file.attrib & _A_HIDDEN ) ? " Y  " : " N  " );         printf( ( c_file.attrib & _A_ARCH )   ? " Y  " : " N  " );         ctime_s( buffer, _countof(buffer), &c_file.time_write );         printf( " %-12s %.24s  %9ld\n",            c_file.name, buffer, c_file.size );      } while( _findnext( hFile, &c_file ) == 0 );      _findclose( hFile );   }}
[解决办法]
C/C++ code
//楼主可以无视偶6楼的回复,看这个吧//-----------------------------------//c盘下的A文件夹,比如里面包括:1.INF,2.INF,1.txt这三个文件,要查找.INF文件//-----------------------------------#include<stdio.h>   #include<string.h>   #include<stdlib.h>   #include<io.h> #include <process.h>#include <memory.h>void SearchFile(const char *);   int main()   {        SearchFile("C:\\A");        printf("\n");    system("pause");       return 0;   }   void SearchFile(const char *dir){               struct _finddata_t   ffblk;     char path[256];       sprintf(path,"%s\\*.INF*",dir);       long done = _findfirst(path,&ffblk);       int find=0;          while (find==0)         {             if(strcmp(ffblk.name,".INF"))            printf("%s\n",ffblk.name);                find=_findnext(done,&ffblk);    }    _findclose(done);     } 

读书人网 >C++

热点推荐