⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 扫描空文件
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, FileCtrl, ComCtrls, Buttons;

type
  TForm1 = class(TForm)
    filelist1: TFileListBox;
    dirlist1: TDirectoryListBox;
    drvlist1: TDriveComboBox;
    List1: TListBox;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    ani1: TAnimate;
    Button5: TButton;
    SpeedButton1: TSpeedButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure List1DblClick(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure List1Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  stopdown           :boolean;

implementation

uses About;

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
   filecount          :integer;
   filename           :string;
   currdir            :string;
   i                  :integer;
   win32finddataa     :_WIN32_FIND_DATAA;
begin
     TButton(sender).enabled:=false;
     currdir:=dirlist1.Directory;
     if copy(currdir,length(currdir),1)<>'\' then
        currdir:=currdir+'\';
     filecount:=filelist1.Items.Count;

     if filecount=0 then exit;
     for i:=0 to filecount-1 do
         begin
              filename:=currdir+filelist1.Items.Strings[i];
              findfirstfile(pchar(filename),win32finddataa);
              if (win32finddataa.nFileSizeHigh =0) and (win32finddataa.nFileSizeLow =0) then
                 list1.Items.add(filename);
         end;
     TButton(sender).enabled:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
   i,filecount     :integer;
   filename        :string;
   fileattr        :_WIN32_FIND_DATAA;
begin
     filecount:=list1.Items.Count;
     for i:=0 to filecount-1 do
         begin
              filename:=list1.Items.Strings[i];
              findfirstfile(pchar(filename),fileattr);
              if fileattr.dwFileAttributes<>FILE_ATTRIBUTE_TEMPORARY then
                 setfileattributes(pchar(filename),0);
              if deletefile(filename)=false then
                 begin
                      //showmessage(filename+'删除失败!');
                 end;
         end;
     list1.Clear;
     filelist1.Refresh ;
end;

procedure TForm1.List1DblClick(Sender: TObject);
var
   filename              :string;
begin
     filename:=list1.items.Strings[list1.Itemindex];
     winexec(pchar('notepad.exe '+filename),1);
end;

procedure findfileempty(path:pchar);
var
   hfile          :Thandle;
   fileattr       :_win32_find_dataa;
   ffind          :Boolean;
   temps          :string;
begin
     hfile:=findfirstfile(pchar(path+'*.*'),fileattr);
     repeat
           ffind:=findnextfile(hfile,fileattr);
           if stopdown then exit;
           if fileattr.dwFileAttributes in [16,18,20,17,48,22,19,50,52,21,49,23,53,51,54] then
               begin
                    temps:=fileattr.cFileName;
                    if temps<>'..' then
                       begin
                            temps:=path+temps+'\';
                            findfileempty(pchar(temps));
                       end;
               end
           else
               if (fileattr.nFileSizeHigh =0) and (fileattr.nFileSizeLow =0) then
                  begin
                       temps:=fileattr.cFileName;
                       form1.list1.Items.add(path+temps);
                       form1.List1.Refresh;
                  end;
           application.ProcessMessages ;
     until not(ffind);
end;

procedure TForm1.Button3Click(Sender: TObject);
var
   destdrv          :string;
begin
     stopdown:=false;
     TButton(sender).enabled:=false;
     button1.Enabled :=false;
     button2.enabled:=false;
     button4.enabled:=false;
     button5.enabled:=true;
     ani1.Active :=true;
     list1.Cursor :=crHourGlass;
     list1.Clear;
     list1.Refresh;
     destdrv:=drvlist1.Drive+':\';
     findfileempty(pchar(destdrv));
     ani1.Active :=false;
     showmessage('共有空文件 ' +inttostr(list1.Items.Count)+' 个!');
     list1.Cursor :=crArrow;
     TButton(sender).enabled:=true;
     button1.Enabled :=true;
     button2.enabled:=true;
     button4.enabled:=true;
     button5.enabled:=false;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
     //swapmousebutton(true);
     close;
end;

procedure TForm1.List1Click(Sender: TObject);
var
   filename             :string;
begin
     filename:=list1.items.Strings[list1.Itemindex];
     list1.Hint:=filename;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
     stopdown:=true;
end;

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
   Form_About.showmodal;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -