我用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”字符的文件并删除,并且不想重复那么长代码,请问应添加什么?请给出完整代码,谢谢。

解决方案 »

  1.   

    问题补充:
        请问这段代码可以删除吗?删除了会有什么后果?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;