📄 umakecd.pas
字号:
{*******************************************************}
{ }
{ DirTree Demo }
{ }
{ 版权所有 (C) 2005 zbird }
{ }
{*******************************************************}
unit uMakeCD;
interface
uses
Classes, SysUtils, Dialogs, uUtils, uIntAddSubX;
type
TvxMakeCD = class(TThread)
private
FDirPath: string;
FSubXAdder: IvxAddSubFileFactory;
procedure MakeDirList(aDirPath: string; aSubXAdder: IvxAddSubFileFactory);
protected
procedure Execute; override;
public
constructor Create(aDirPath: string; aSubXAdder: IvxAddSubFileFactory);
end;
implementation
{
********************************** TvxMakeCD ***********************************
}
constructor TvxMakeCD.Create(aDirPath: string; aSubXAdder:
IvxAddSubFileFactory);
begin
FDirPath := aDirPath;
FSubXAdder := aSubXAdder;
inherited Create(False);
end;
procedure TvxMakeCD.Execute;
begin
MakeDirList(FDirPath, FSubXAdder);
end;
procedure TvxMakeCD.MakeDirList(aDirPath: string; aSubXAdder:
IvxAddSubFileFactory);
var
FSearchRec, DSearchRec: TSearchRec;
FindResult: Integer;
function IsDirNotation(ADirName: string): Boolean;
begin
Result := (ADirName = '.') or (ADirName = '..');
end;
begin
aDirPath := GetDirectoryName(aDirPath);
FindResult := FindFirst(aDirPath + '*.*', faDirectory, DSearchRec);//找目录
try
while FindResult = 0 do
begin
if ((DSearchRec.Attr and faDirectory) = faDirectory) and not
IsDirNotation(DSearchRec.Name) then
begin
MakeDirList(aDirPath + DSearchRec.Name,
aSubXAdder.AddSubDir(aDirPath + DSearchRec.Name, DSearchRec));
end;
FindResult := FindNext(DSearchRec);
end;
finally
FindClose(DSearchRec);
end;
FindResult := FindFirst(aDirPath + '*.*', faAnyFile + faHidden +//找文件
faSysFile + faReadOnly, FSearchRec);
try
while FindResult = 0 do
begin
aSubXAdder.AddSubFile(aDirPath + FSearchRec.Name, FSearchRec);
FindResult := FindNext(FSearchRec);
end;
finally
FindClose(FSearchRec);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -