/// <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遍历文件夹的更多相关文章

  1. Delphi遍历文件夹及子文件夹(可查找固定格式文件)

    Delphi遍历文件夹及子文件夹 {-------------------------------------------------------------------------------过程名 ...

  2. Delphi下遍历文件夹下所有文件的递归算法

    {------------------------------------------------------------------------------- 过程名:    MakeFileLis ...

  3. C#遍历文件夹下所有文件

    FolderForm.cs的代码如下: using System; using System.Collections.Generic; using System.Diagnostics; using ...

  4. windowsAPI遍历文件夹(速度高于递归)

    #region API 遍历文件夹及其子文件夹和子文件 #region 声明WIN32API函数以及结构 ************************************** [DllImpo ...

  5. C# 遍历文件夹下所有子文件夹中的文件,得到文件名

    假设a文件夹在F盘下,代码如下.将文件名输出到一个ListBox中using System.Data;using System.Drawing;using System.Linq;using Syst ...

  6. python 遍历文件夹 文件

    python 遍历文件夹 文件   import os import os.path rootdir = "d:\data" # 指明被遍历的文件夹 for parent,dirn ...

  7. C#遍历文件夹及文件

    背景: 想自己实现一个网盘系统,于是需要用到遍历文件(夹)操作. C#基本知识梳理: 1.如何获取指定目录包含的文件和子目录 (1). DirectoryInfo.GetFiles():获取目录中(不 ...

  8. Java学习随笔3:遍历文件夹及文件的读取和写入

    import java.io.File; /** * 遍历文件夹 */ public class ScannerFile { public static void main(String[] args ...

  9. java 遍历文件夹里的文件

    Java遍历文件夹的2种方法: A.不使用递归: import java.io.File; import java.util.LinkedList; public class FileSystem { ...

随机推荐

  1. 【Merge Two Sorted Lists】cpp

    题目: Merge two sorted linked lists and return it as a new list. The new list should be made by splici ...

  2. Netsharp快速入门(之19) 平台常用功能(插件操作)

    作者:秋时 暗影  转载须说明出处 6.2     插件操作 6.2.1  停用/启用 1.在平台工具-插件管理,右击对应的插件可以使用启用和停用功能.插件停用后会把所有相关的页签.程序集.服务全部停 ...

  3. 如何用myeclispe远程调试tomcat

    如何用myeclispe远程调试tomcat 在工作开发中,通常用本机进行代码编写,然后将编好的工程部署到测试服务器进行测试.往往测试服务器并不是自己的本机,因此对调试带来众多不便.今天学习可以用my ...

  4. java 验证电话号码(手机和固话)

  5. B股

    B股的正式名称是人民币特种股票.它是以人民币标明面值,以外币认购和买卖,在中国境内(上海.深圳)证券交易所上市交易的外资股.B股公司的注册地和上市地都在境内.

  6. 如何用 Parse 和 Swift 搭建一个像 Instagram 那样的应用?

    [编者按]本篇文章作者是Reinder de Vries,既是一名企业家,也是优秀的程序员,发表多篇应用程序的博客.本篇文章中,作者主要介绍了如何基于Parse特点,打造一款类似Instagram的应 ...

  7. HDU4776 Ants(Trie && xor)

    之前mark下来的一道题,今天填一下坑. 题意是这样子的.给你一棵边上有权的树.然后有树上两点(u,v)的路径有n*(n-1)条,路径(u,v)的权值是边权的xor. 然后下面有m个询问,询问你n*( ...

  8. Difference Between Initialization and Assignment in C++

    Initialization happens when a variable is given a value at the moment it is created. Assignment obli ...

  9. php curl 分离header和body信息

    php中可以通过curl来模拟http请求,同时可以获取http response header和body,当然也设置参数可以只获取其中的某一个.当设置同时获取response header和body ...

  10. MySQL5.6 Replication主从复制(读写分离) 配置完整版

    MySQL5.6 Replication主从复制(读写分离) 配置完整版 MySQL5.6主从复制(读写分离)教程 1.MySQL5.6开始主从复制有两种方式: 基于日志(binlog): 基于GTI ...