文件切割子程序

简介: //分解文件夹 SDir:源目录名 DDir:目的目录名 SQZ:生成的子目录(前)后缀名 //SExt:文件类型 MNum:每个文件夹的文件数目 B:SQZ为前缀还是后缀名 procedure CutDir(SDir,DDir,SQZ,SExt:string;MNum:inte...

//分解文件夹 SDir:源目录名 DDir:目的目录名 SQZ:生成的子目录(前)后缀名

//SExt:文件类型 MNum:每个文件夹的文件数目 B:SQZ为前缀还是后缀名

procedure CutDir(SDir,DDir,SQZ,SExt:string;MNum:integer;B:Boolean;handle:THandle);

var

i,iFileCount,iFileNum,iDirCount,iDirNum:integer;

tsr:TStringList;

DFileName,SFileName:string;

bSearch:Boolean;

begin

bSearch:=False;

tsr:=TStringList.Create;

tsr:=FkFileListGet(SExt,SDir,False);

if SDir[Length(SDir)]<>'\' then

SDir :=SDir+'\';

if DDir[Length(DDir)]<>'\' then

DDir :=DDir+'\';

for i:=0 to tsr.count-1 do

begin

SFileName:=tsr[i];

if not bSearch then

begin

iDirCount :=GetDirCount(SDir+'*.*');

iDirNum :=iDirCount;

end;

if iDirNum=0 then

begin

if B then

begin

MkDir(DDir+SQZ+'1');

DFileName:=DDir+SQZ+'1\'+ExtractFileName(SFileName);

end

else

begin

MkDir(DDir+'1'+SQZ);

DFileName:=DDir+'1'+SQZ+'\'+ExtractFileName(SFileName);

end;

iFileNum :=1;

end

else

begin

if not bSearch then

begin

if B then

iFileCount:=GetFileCount(DDir+SQZ+IntToStr(iDirCount) ,SExt)

else

iFileCount:=GetFileCount(DDir+SQZ+IntToStr(iDirCount) +SQZ,SExt)

iFileName :=iFileCount;

bSearch :=True;

end;

if iFileNum>=MNum then

begin

if B then

begin

MKDir(DDir+SQZ+IntToStr(iDirNum+1));

DFileName :=DDir+SQZ+IntToStr(iDirNum+1)+'\'+ExtractFileName(SFileName);

end

else

begin

MKDir(DDir+SQZ+IntToStr(iDirNum+1)+SQZ);

DFileName :=DDir+IntToStr(iDirNum+1)+SQZ+'\'+ExtractFileName(SFileName);

end;

iDirNum :=iDirNum+1;

iFileNum :=1;

end

else

begin

if B then

DFileName:=DDir+SQZ+IntToStr(iDirNum)+'\'+ExtractFileName(SFileName);

else

DFileName:=DDir+IntToStr(iDirNum)++SQZ+'\'+ExtractFileName(SFileName);

iFileNum:=iFileNum+1;

end;

end;

MoveFile(Handle,SFileName,DFileName);

end;

end;

//调用实例,将F:\djcproj\技术文章内的所有txt文件以每20个作为一个文件夹的形式,切割到各子目录中,且子目录形//式为S1,S2.....

CutDir('F:\djcproj\技术文章','F:\djcproc\技术文章','S','*.txt',20,True,Handle);

相关文章
|
7月前
|
运维
简记:清理指定后缀名文件的 powerhsell 小脚本
简记:清理指定后缀名文件的 powerhsell 小脚本
65 0
|
7月前
|
编译器 程序员 C语言
【文件包含的本质、预处理符号、# vs ##】
【文件包含的本质、预处理符号、# vs ##】
for循环 批处理 查找文件 详细信息 文件名
for循环 批处理 查找文件 详细信息 文件名
101 0
去除txt文件空行批处理程序
刚好遇到一个需要去除txt文件空行的问题,就做了一个批处理bat程序来操作,挺方便,附上来给大家分享一下
408 0
西门子S7-1200的转换指令、取整和截取指令、上取整和下取整指令、标定和标准化指令,各参数的含义是什么?
西门子S7-1200中的转换指令包括转换指令、取整和截取指令、上取整和下取整指令、标定和标准化指令。
西门子S7-1200的转换指令、取整和截取指令、上取整和下取整指令、标定和标准化指令,各参数的含义是什么?
|
7月前
|
存储 人工智能 资源调度
【windows批处理batch】.bat文件 字符串处理相关操作(字符串定义、分割、拼接、替换、切片、查找)
【windows批处理batch】.bat文件 字符串处理相关操作(字符串定义、分割、拼接、替换、切片、查找)
|
7月前
|
Perl
awk命令中逐行处理
awk命令中逐行处理
130 3
|
网络协议 Linux Go
分批读取文件中数据的程序流程及其C代码实现
分批读取文件中数据的程序流程及其C代码实现
99 0
编写一个程序,如果名为Exercise12_15.txt的文件不存在,则创建该文件。使用文本I/O将随机产生的100个整数写入文件,文件中的整数由空格分开。从文件中读回数据并以升序显示数据。
编写一个程序,如果名为Exercise12_15.txt的文件不存在,则创建该文件。使用文本I/O将随机产生的100个整数写入文件,文件中的整数由空格分开。从文件中读回数据并以升序显示数据。
291 0
% 批处理变量引导符
% 批处理变量引导符
98 0