Delphi遍历文件夹
/// <remarks>
/// 遍历文件夹 (引用SysUtils单元)
/// </remarks>
procedure TfrmMusicMenu.SearchInDir(sDirectory: string);
var
pSearchRec: TSearchRec; // TSearchRec是delphi为我们定义好的一个记录类型。
// 用于记录文件的各个参数,比如大小,属性,文件名等等;
sPath, sFile: string;
begin
try
// 检查目录名后面是否有'\'
if Copy(sDirectory, Length(sDirectory), ) <> '\' then
sPath := sDirectory + '\'
else
sPath := sDirectory; {FindFirst 是用来寻找目标目录下的第一个文件,当成功找到文件时,返回0
FindFirst的三个参数:1.路径与文件后缀(C:\*.*)
2.文件类型;
3.TSearchRec类型变量(用于储存文件的参数)}
if FindFirst(sPath + '*.*', faAnyFile, pSearchRec) = then
begin
repeat
sFile := Trim(pSearchRec.Name); // 排除自身文件夹,与父文件夹
if sFile = '.' then Continue;
if sFile = '..' then Continue; sFile := sPath + pSearchRec.Name; // 文件夹的情况(递归)
if(pSearchRec.Attr and faDirectory) <> then
SearchInDir(sFile)
else // 文件的情况
if(pSearchRec.Attr and faAnyFile) = pSearchRec.Attr then
begin
if Pos('.MP3', UpperCase(sFile)) < then Continue; if FSelFileList = '' then
FSelFileList := sFile
else
FSelFileList := FSelFileList + ',' + sFile;
end; {FindNext 寻找下一个
TSearchRec(sr) 是一个文件信息的纪录,
当FindFirst返回SearchRec时,你可以通过SearchRec.Name获取文件名,
以及 SearchRec.Size获取文件大小等信息}
until FindNext(pSearchRec) <> ; {FindClose 释放由FindFirst分配的内存。FindClose停止一个FindFirst/FindNext序列。
FindClose 在16位的操作系统中没有用处,但在32位系统中是需要的,
所以为了最大的FindFirst/FindNext序列完成的可能性应该调用FindClose结束。}
FindClose(pSearchRec);
if FSelFileList = '' then
InfoDlg('NND!这个文件夹有你妹的 Music 啊...');
end;
except
InfoDlg('NND!找个Music都TMD异常...');
end;
end;
Delphi遍历文件夹的更多相关文章
- Delphi遍历文件夹及子文件夹(可查找固定格式文件)
Delphi遍历文件夹及子文件夹 {-------------------------------------------------------------------------------过程名 ...
- Delphi下遍历文件夹下所有文件的递归算法
{------------------------------------------------------------------------------- 过程名: MakeFileLis ...
- C#遍历文件夹下所有文件
FolderForm.cs的代码如下: using System; using System.Collections.Generic; using System.Diagnostics; using ...
- windowsAPI遍历文件夹(速度高于递归)
#region API 遍历文件夹及其子文件夹和子文件 #region 声明WIN32API函数以及结构 ************************************** [DllImpo ...
- C# 遍历文件夹下所有子文件夹中的文件,得到文件名
假设a文件夹在F盘下,代码如下.将文件名输出到一个ListBox中using System.Data;using System.Drawing;using System.Linq;using Syst ...
- python 遍历文件夹 文件
python 遍历文件夹 文件 import os import os.path rootdir = "d:\data" # 指明被遍历的文件夹 for parent,dirn ...
- C#遍历文件夹及文件
背景: 想自己实现一个网盘系统,于是需要用到遍历文件(夹)操作. C#基本知识梳理: 1.如何获取指定目录包含的文件和子目录 (1). DirectoryInfo.GetFiles():获取目录中(不 ...
- Java学习随笔3:遍历文件夹及文件的读取和写入
import java.io.File; /** * 遍历文件夹 */ public class ScannerFile { public static void main(String[] args ...
- java 遍历文件夹里的文件
Java遍历文件夹的2种方法: A.不使用递归: import java.io.File; import java.util.LinkedList; public class FileSystem { ...
随机推荐
- Upgrading to Java 8——第三章 Optional and Similar Classes
Java程序员对付空指针异常已经好多年了.在Java8中将有新的方式去处理他们.通过包装一个潜在的可能为null的类称为Optianal. 在Java8中添加了the Optional, Option ...
- 虚拟目录里面的webconfig不继承网站的设置
必須在上一层虚拟目录(如根目录,上级网站)所在的Web.config加上 如:<location path="." allowOverride="false&quo ...
- MySQL 5.7 虚拟列 (virtual columns)
参考资料: Generated Columns in MySQL 5.7.5 MySQL 5.7新特性之Generated Column(函数索引) MySQL 5.7原生JSON格式支持 Gener ...
- AD转换后数字量的处理
假设模拟输入电压的最大值为5V,A/D转换器件为8位转换. [该转换器的分辨率为1/2n=0.3906%.] [能分辨输入模拟电压变化的最小值为5*0.3906%=19.5mv.] 则模拟电压与数字输 ...
- RMQ(st)
int dp[1111][12]; int a[1111]; int n; void RMQ_init() { for(int i=1;i<=n;i++) { d ...
- Codis集群的搭建与使用
一.简介 Codis是一个分布式的Redis解决方案,对于上层的应用来说,连接Codis Proxy和连接原生的Redis Server没有明显的区别(不支持的命令列表),上层应用可以像使用单机的Re ...
- ab压力测试工具-批量压测脚本
ab(Apache benchmark)是一款常用的压力测试工具.简单易用,ab的命令行一次只能支持一次测试.如果想要批量执行不同的测试方式,并自动对指标进行分析,那么单靠手工一条一条命令运行ab,估 ...
- HDU 1247 Hat’s Words(map,STL,字符处理,string运用)
题目 用map写超便捷 也可以用字典树来写 我以前是用map的: #include<stdio.h> #include<string.h> #include<algori ...
- 行列有序矩阵求第k大元素
问题来源:http://www.careercup.com/question?id=6335704 问题描述: Given a N*N Matrix. All rows are sorted, and ...
- PHP SESSION 保存到数据库
PHP SESSION 的工作原理 在客户端(如浏览器)登录网站时,被访问的 PHP 页面可以使用 session_start() 打开 SESSION,这样就会产生客户端的唯一标识 SESSION ...