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来写也是相同的。
参考技术APHP的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));
?>
$files = glob('*.jpg'); // 其他文件做类似修改,比如 *.png, *.txt等。。有目录请添加绝对目录。比如:c:/album/*.jpg
echo 'total : ' , count($files); // $files是一个文件数组。
?>本回答被提问者采纳
以上是关于golang怎么逐个读取目录下的所有文件的主要内容,如果未能解决你的问题,请参考以下文章