如何列出目录下的所有文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何列出目录下的所有文件相关的知识,希望对你有一定的参考价值。

一般而言,program files文件夹里没有文件,都是文件夹。 假定program files文件夹在C盘根目录上。 在开始菜单里选择“运行”,在“打开”后输入cmd然后点“确定” 此时出现命令行窗口(黑色)。依次输入: c:\\回车 cd program files回车 dir >c:\\pfls.txt回车 exit回车 现在,在C盘根目录就有一个pfls.txt文本文件记录了program files的内容。就是你需要的。 参考技术A Perl中通过文件glob的操作符glob提供相当于shell中的指定多个文件的"通配符"语法的功能,文件glob的操作符glob将返回与所指定的glob文件模式相匹的所有文件的列表。
下面是一些例子:
@html_file=glob '/home/site/*.html';
@three_letter_extensions=glob '*.???';
@lcfirst=glob '[a-z]*';
@files=glob 'file[0-9][0-9][0-9]';
@files=glob '???*';
glob语法
glob操作符有两种不同的形式:
@files=glob '*.pl';
@files=<*.pl>
在此应该注意文件glob操作符与读行操作符的区别。Perl在遇到尖括号时,它会检查尖括号中的内容,从而确定其中的内容是否为文件句柄。
当在变量上执行文件glob时,必须中文件名两端添加大括号,只有这样perl才不会将其当前文件进行操作,遇到这种情况,使用glob语法更为简单。
#读文件$file
@content=<$file>;
#执行文件glob
@files=<$filespec>;
@files=glob $filespec;

怎样使用C语言列出某个目录下的文件?

用C语言列出目录下的文件,在linux下可采用readdir()函数来实现,代码实现过程为:

    打开目录

    循环读目录,输出目录下文件

    关闭目录指针

参考代码:

#include <dirent.h>
#include <stdio.h>
int main()

    DIR *dirp; 
    struct dirent *dp;
    dirp = opendir("."); //打开目录指针
    while ((dp = readdir(dirp)) != NULL)  //通过目录指针读目录
        printf("%s\\n", dp->d_name );
          
    (void) closedir(dirp); //关闭目录
    return 0;

在windows下,代码如下:

#include <io.h>
#include <stdio.h>

void printDir( const char* path )

    struct _finddata_t data;
    long hnd = _findfirst( path, &data );    // 查找文件名与正则表达式chRE的匹配第一个文件
    if ( hnd < 0 )
    
        perror( path );
    
    int  nRet = (hnd <0 ) ? -1 : 1;
    while ( nRet >= 0 )
    
        if ( data.attrib == _A_SUBDIR )  // 如果是目录
            printf("   [%s]*\\n", data.name );
        else
            printf("   [%s]\\n", data.name );
        nRet = _findnext( hnd, &data );
    
    _findclose( hnd );     // 关闭当前句柄

void main()

printDir("d:/*.*");

相关函数说明:

long _findfirst( char *filespec, struct _finddata_t *fileinfo );  
// 功  能 : 提供与filespec指定入口泛式匹配的第一个文件.通常后继用_findnext()函数来完成某泛式下的文件遍历.  
// 头文件 : #include <io.h>  
// 参  数 : filespec - 目标文件规范,可以包含通配符  
//          fileinfo - 文件信息buffer  
// 返回值 : 成功返回唯一的搜索句柄  
//          出错返回-1,且设置errno为如下值:  
//          ENOENT 该泛式无法匹配  
//          EINVAL 无效文件名  
int _findnext( long handle, struct _finddata_t *fileinfo );  
// 功  能 : 按照前面_findfirst中的泛式规则,查找下一个符合该泛式的文件,并以此为依据修改fileinfo中的值  
// 头文件 : #include <io.h>  
// 参  数 : long handle - 搜索句柄(通常由紧靠其前的_findfirst()返回)  
//          fileinfo    - 文件信息buffer  
// 返回值 : 成功返回0  
//          出错返回-1
int _findclose( long handle );  
// 功  能 : 关闭搜寻句柄并释放相应资源  
// 头文件 : #include <io.h>  
// 参  数 : long handle - 搜索句柄(通常由紧靠其前的_findfirst()返回)  
// 返回值 : 成功返回0  
//          出错返回-1

参考技术A C语言本身没有提供象dir_list()这样的函数来列出某个目录下所有的文件。不过,利用C语言的几个目录函数,你可以自己编写一个dir_list()函数。首先,头文件dos.h定义了一个find_t结构,它可以描述DOS下的文件信息,包括文件名、时间、日期、大小和属性。其次,C编译程序库中有_dos_findfirst()和_dos_findnext()这样两个函数,利用它们可以找到某个目录下符合查找要求的第一个或下一个文件。dos_findfirst()函数有三个参数,第一个参数指明要查找的文件名,例如你可以用“*.*”指明要查找某个目录下的所有文件。第二个参数指明要查找的文件属性,例如你可以指明只查找隐含文件或子目录。第三个参数是指向一个find_t变量的指针,查找到的文件的有关信息将存放到该变量中。dos_findnext()函数在相应的目录中继续查找由_dos_findfirst()函数的第一个参数指明的文件。_dos_findnext()函数只有一个参数,它同样是指向一个find_t变量的指针,查找到刚文件的有关信息同样将存放到该变量中。利用上述两个函数和find_t结构,你就可以遍历磁盘上的某个目录,并列出该目录下所有的文件,请看下例:#include <stdio.h>#include <direct.h>#include <dos.h>#include <malloc.h>#include <memory.h>#include <string.h>typedef struct find_t FILE_BLOCKvoid main(void);void main(void)FILE_BLOCK f-block; /* Define the find_t structure variable * /int ret_code; / * Define a variable to store the return codes * // * Use the "*.*" file mask and the 0xFF attribute mask to listall files in the directory, including system files, hiddenfiles, and subdirectory names. * /ret_code = _dos_findfirst(" *. * ", 0xFF, &f_block);/* The _dos_findfirst() function returns a 0 when it is successfuland has found a valid filename in the directory. * /while (ret_code == 0)/* Print the file's name * /printf(" %-12s\n, f_block, name);/ * Use the -dos_findnext() function to look本回答被提问者采纳

以上是关于如何列出目录下的所有文件的主要内容,如果未能解决你的问题,请参考以下文章

如何列出linux的文件目录和所有的文件

用java写一个代码实现: 如何列出某个目录下的所有子目录

Linux如何列出svn一个文件夹下的所有文件

列出/etc目录下的所有文件命令

怎样使用C语言列出某个目录下的文件?

PHP 列出当前目录下所有文件(自身别列出来)