golang怎么逐个读取目录下的所有文件

Posted

tags:

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

参考技术A CFileFindff;CStringszName=dir;if(szName.Right(1)!="\\")szName+="\\";szName+="*.*";BOOLres=ff.FindFile(szName);while(res)res=ff.FindNextFile();if(!ff.IsDots())//目录是文件夹//如果是一个子目录,用递归继续往深一层找TravelDir(dir+"\\"+ff.GetFileTitle());elseif(!ff.IsDirectory()&&!ff.IsDots())//到达最低层的文件CStringfileName=ff.GetFileName();ff.Close();//关闭MessageBox(fileName);

php如何读取某目录下的所有同类型文件

假设我Album文件夹里有许多XXX.jpg, YYY.jpg, ZZZ.png, aaa.txt
如何读取后缀为jpg的文件总数
谢谢了!
我对PHP不熟用,现在要用

PHP使用函数opendir、readdir、closedir来实现文件夹的操作,下面以一个最基本的例子来作为入门介绍:

<?php
//获取某目录下所有文件、目录名(不包括子目录下文件、目录名)  
    $dir=\'C:/Users/\';
    $handler = opendir($dir);  
    while (($filename = readdir($handler)) !== false) //务必使用!==,防止目录下出现类似文件名“0”等情况  
        if ($filename != "." && $filename != "..")   
                $files[] = $filename ;  
             
         
      
    closedir($handler);  
       
//打印所有文件名  
    foreach ($filens as $value)   
        echo $value."<br />";  
      
?>

上面的代码显示c:\\users文件夹里面的所有的文件和文件夹,忽略.和..两个特殊含义的文件夹,程序把所有文件和文件夹名称扫描保存到数组里面,然后显示。


如果你需要对文件进行过滤,例如只处理*.xls文件,可以在过滤.和..的地方添加代码。例如:

if (substr($filename,-4)==\'.xls\')


当你理解了上面的代码之后,你就能编写扫描子文件夹、以及子 文件夹里面文件的方法了。基本思路是使用递归,下面我给出一个简单的例子:

function get_allfiles($path,&$files)   
    if(is_dir($path))  
        $dp = dir($path);  
        while ($file = $dp ->read())  
            if($file !="." && $file !="..")  
                get_allfiles($path."/".$file, $files);  
              
          
        $dp ->close();  
      
    if(is_file($path))  
        $files[] =  $path;  
      
  
     
function get_filenamesbydir($dir)  
    $files =  array();  
    get_allfiles($dir,$files);  
    return $files;  
  
     
$filenames = get_filenamesbydir("c:/users/");  
//打印所有文件名,包括路径  
foreach ($filenames as $value)   
    echo $value."<br />";  

这个例子使用dir类来编写,实际上用opendir、readdir、closedir来写也是相同的。

参考技术A

PHP的glob() 函数返回匹配指定模式的文件名或目录。

该函数返回一个包含有匹配文件 / 目录的数组。如果出错返回 false。

语法

glob(pattern,flags)

参数

   

描述

 file    
   必需。规定检索模式。    
 

 
size    
   可选。规定特殊的设定。


GLOB_MARK - 在每个返回的项目中加一个斜线

GLOB_NOSORT - 按照文件在目录中出现的原始顺序返回(不排序)

GLOB_NOCHECK - 如果没有文件匹配则返回用于搜索的模式

GLOB_NOESCAPE - 反斜线不转义元字符

GLOB_BRACE - 扩充 a,b,c 来匹配 'a','b' 或 'c'

GLOB_ONLYDIR - 仅返回与模式匹配的目录项

GLOB_ERR - 停止并读取错误信息(比如说不可读的目录),默认的情况下忽略所有错误


注释:GLOB_ERR 是 PHP 5.1 添加的。

例子 1

<?php
$a = glob("*.txt");
print_r(count($a));
?>

   

参考技术B <?php

$files = glob('*.jpg'); // 其他文件做类似修改,比如 *.png, *.txt等。。有目录请添加绝对目录。比如:c:/album/*.jpg
echo 'total : ' , count($files); // $files是一个文件数组。

?>本回答被提问者采纳

以上是关于golang怎么逐个读取目录下的所有文件的主要内容,如果未能解决你的问题,请参考以下文章

MFC怎么查找当前目录以及子目录下的*_DS.TXT文件?

golang 在golang中管道exec.Cmd(示例按其扩展名对目录下的所有常规文件进行排序)

Golang 递归获取目录下所有文件

如何将hdfs里某一目录下的所有文件的文件名读取出来

在java里面怎么获得一个文件夹里面所有子文件名?

Ubuntu18涓嬩娇鐢╯upervisor瀹堟姢golang杩涚▼