Delphi,如何快速统计文件夹下文件数量,包括子文件夹
时间:2011-09-06
来源:互联网
我需要知道,一个文件夹(包括子文件夹)中的 *.jpg 以及 *.jpeg 文件的数量(扩展名不区分大小写)。
如不能区分扩展名,统计所有文件数量也可以。
另 这个方法是否可以统计文件夹及子文件夹的数量?
不用遍历文件夹的方法。那种循环递归速度太慢了。
因为我的文件至少有几万个。
万分感谢 麻烦给出详细代码。!!!
如不能区分扩展名,统计所有文件数量也可以。
另 这个方法是否可以统计文件夹及子文件夹的数量?
不用遍历文件夹的方法。那种循环递归速度太慢了。
因为我的文件至少有几万个。
万分感谢 麻烦给出详细代码。!!!
作者: pronet 发布时间: 2011-09-06
貌似只有遍历这个方法
作者: m617105 发布时间: 2011-09-06
没用过其他方法,递归遍历还行吧,关注。
作者: zhnglicho 发布时间: 2011-09-06
之前看到有人好像是用一个api函数将文件放到一个列表控件内。然后通过items.count获得数量,速度非常快。
我自己也想到,通过调用dos命令 dir *.jpg /s>>a.txt 后把通过dos命令管道方式建立a.txt文件打开读取最后两行内容。 可速度还是不能满意。
遍历的话 我试过,够慢的,导致我程序执行时 要等好一会才能显示界面。。
我自己也想到,通过调用dos命令 dir *.jpg /s>>a.txt 后把通过dos命令管道方式建立a.txt文件打开读取最后两行内容。 可速度还是不能满意。
遍历的话 我试过,够慢的,导致我程序执行时 要等好一会才能显示界面。。
作者: pronet 发布时间: 2011-09-06
楼主可以使用Delphi中新增的 IOUtils 单元来完成文件遍历。
首先添加 IOUtils 单元和 Types 单元;
示例代码如下:
指定一个测试目录,楼主可以换成你自己指定的目录,
const
aimDir = 'D:\MyPctures';
获取指定目录及其子目录下所有指定类型的文件
var
dir: TDirectory;
files: TStringDynArray;//需要 Types 单元支持
str: string;
begin
files := dir.GetFiles(aimDir, '*.jpg', TSearchOption.soAllDirectories);
mmoFiles.Clear;
for str in files do
mmoFiles.Lines.Add(str);
end;
该检索方式速度比传统的遍历要快,且支持通配符。
首先添加 IOUtils 单元和 Types 单元;
示例代码如下:
指定一个测试目录,楼主可以换成你自己指定的目录,
const
aimDir = 'D:\MyPctures';
获取指定目录及其子目录下所有指定类型的文件
var
dir: TDirectory;
files: TStringDynArray;//需要 Types 单元支持
str: string;
begin
files := dir.GetFiles(aimDir, '*.jpg', TSearchOption.soAllDirectories);
mmoFiles.Clear;
for str in files do
mmoFiles.Lines.Add(str);
end;
该检索方式速度比传统的遍历要快,且支持通配符。
作者: Terony 发布时间: 2011-09-06
还有一点忘了说了,上面的实例中,mmoFiles是用来显示检索到的文件的一个TMemo组件,楼主自行添加就好了。
作者: Terony 发布时间: 2011-09-06
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28