我用Delphi编了一个控制台程序,代码如下:program Project1;{$APPTYPE CONSOLE}uses
Windows,System,
SysUtils;procedure GetFile(PathName: string);
var
FindData: TWin32FindData;
hf:THandle;
b:boolean;
tmpstr:string;
tempFolder:string;
str:string;
begin
hf := Windows.FindFirstFile(PChar(PathName + '\*.*'), FindData);
if hf = INVALID_HANDLE_VALUE then exit;
b := true;
while b do
begin
if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
begin
str:=string(FindData.cFileName);
if (Pos( '.abin', str ) > 0 ) or (Pos( 'abinc', str ) > 0 ) then//查看文件名中是否包含 .abin/ abinc
begin
WriteLn( str );
DeleteFile(PChar(PathName+'\'+string(FindData.cFileName)));
end;
end
else
begin
tmpstr := FindData.cFileName + '';
if (tmpstr <> '.') and (tmpstr <> '..') then
begin
tempFolder:=tempFolder+string(FindData.cFileName)+'\';
GetFile(PathName + '\' + FindData.cFileName);
end;
end;
b := windows.FindNextFile(hf,FindData);
end;
end;var
I: Integer;
Drive: PChar;
begin
for I := 0 to 31 do
begin
if Boolean(GetLogicalDrives and (1 SHL I)) then
begin
Drive:= PChar(CHR(65 + I) + ':\');
writeln( '正在查找'+Drive+'盘文件' );
GetFile( Drive ); writeln( Drive+'盘文件查找完毕' );
end;
end;
end.这个程序是查找以“.abin”为扩展名的文件以及名字含有“abinc”字符的文件并删除,我现需增加查找以“.acin”、“.azin”、“.adin”为扩展名的文件和名字含有“acinc”、“azinc”、“adinc”字符的文件并删除,并且不想重复那么长代码,请问应添加什么?请给出完整代码,谢谢。
Windows,System,
SysUtils;procedure GetFile(PathName: string);
var
FindData: TWin32FindData;
hf:THandle;
b:boolean;
tmpstr:string;
tempFolder:string;
str:string;
begin
hf := Windows.FindFirstFile(PChar(PathName + '\*.*'), FindData);
if hf = INVALID_HANDLE_VALUE then exit;
b := true;
while b do
begin
if (FindData.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY) = 0 then
begin
str:=string(FindData.cFileName);
if (Pos( '.abin', str ) > 0 ) or (Pos( 'abinc', str ) > 0 ) then//查看文件名中是否包含 .abin/ abinc
begin
WriteLn( str );
DeleteFile(PChar(PathName+'\'+string(FindData.cFileName)));
end;
end
else
begin
tmpstr := FindData.cFileName + '';
if (tmpstr <> '.') and (tmpstr <> '..') then
begin
tempFolder:=tempFolder+string(FindData.cFileName)+'\';
GetFile(PathName + '\' + FindData.cFileName);
end;
end;
b := windows.FindNextFile(hf,FindData);
end;
end;var
I: Integer;
Drive: PChar;
begin
for I := 0 to 31 do
begin
if Boolean(GetLogicalDrives and (1 SHL I)) then
begin
Drive:= PChar(CHR(65 + I) + ':\');
writeln( '正在查找'+Drive+'盘文件' );
GetFile( Drive ); writeln( Drive+'盘文件查找完毕' );
end;
end;
end.这个程序是查找以“.abin”为扩展名的文件以及名字含有“abinc”字符的文件并删除,我现需增加查找以“.acin”、“.azin”、“.adin”为扩展名的文件和名字含有“acinc”、“azinc”、“adinc”字符的文件并删除,并且不想重复那么长代码,请问应添加什么?请给出完整代码,谢谢。
请问这段代码可以删除吗?删除了会有什么后果?var
I: Integer;
Drive: PChar;
begin
for I := 0 to 31 do
begin
if Boolean(GetLogicalDrives and (1 SHL I)) then
begin
Drive:= PChar(CHR(65 + I) + ':\');
writeln( '正在查找'+Drive+'盘文件' );
GetFile( Drive ); writeln( Drive+'盘文件查找完毕' );
end;
end;