zoukankan      html  css  js  c++  java
  • Delphi 实现目录删除、复制、移动

    unit MainUnit;
    interface

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

    type
    TMainForm = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    private
    { Private declarations }
    public
    { Public declarations }
    end;

    var
    MainForm: TMainForm;

    implementation

    {$R *.DFM}

    procedure TMainForm.Button1Click(Sender: TObject);
    var
    yDir: String;
    begin
    yDir:= '';
    if SelectDirectory(yDir, [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then
    Edit1.Text:= yDir;
    end;

    procedure TMainForm.Button2Click(Sender: TObject);
    var
    mdDir: String;
    begin
    mdDir:= '';
    if SelectDirectory(mdDir, [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then
    Edit2.Text:= mdDir;
    end;

    procedure TMainForm.Button3Click(Sender: TObject);
    var
    OPS: TSHFileOpStruct;
    FromBuf, ToBuf: Array[0..128]of Char;
    begin
    FillChar(FromBuf, SizeOf(FromBuf), 0); //初始化数组FromBuf
    FillChar(ToBuf, SizeOf(ToBuf), 0); //初始化数组ToBuf
    StrPCopy(FromBuf, PChar(Edit1.Text)); //将FromBuf填入源目录
    StrPCopy(ToBuf, PChar(Edit2.Text)); //将ToBuf填入目的目录
    with OPS do
    begin
    Wnd:= Handle;
    wFunc:= FO_COPY; //进行复制
    pFrom:= @FromBuf;
    PTo:= @ToBuf;
    fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
    fAnyOperationsAborted:= False;
    hNameMappings:= nil;
    lpszProgressTitle:= nil;
    end;
    if SHFileOperation(OPS)= 0 then
    MessageBox(Handle, '复制成功!', '复制信息', MB_OK+ MB_ICONINFORMATION);

    end;

    procedure TMainForm.Button4Click(Sender: TObject);
    var
    OPS: TSHFileOpStruct;
    FromBuf: Array[0..128]of Char;
    begin
    FillChar(FromBuf, SizeOf(FromBuf), 0); //初始化数组FromBuf
    StrPCopy(FromBuf, PChar(Edit1.Text)); //将FromBuf填入源目录
    with OPS do
    begin
    Wnd:= Handle;
    wFunc:= FO_DELETE; //进行删除
    pFrom:= @FromBuf;
    pTo:= nil;
    fFlags:= FOF_NOCONFIRMATION;
    lpszProgressTitle:= '正在删除';
    end;
    if SHFileOperation(OPS)= 0 then
    MessageBox(Handle, '删除成功!', '删除信息', MB_OK+ MB_ICONINFORMATION);
    end;

    procedure TMainForm.Button5Click(Sender: TObject);
    var
    OPS: TSHFileOpStruct;
    FromBuf, ToBuf: Array[0..128]of Char;
    begin
    FillChar(FromBuf, SizeOf(FromBuf), 0); //初始化数组FromBuf
    FillChar(ToBuf, SizeOf(ToBuf), 0); //初始化数组ToBuf
    StrPCopy(FromBuf, PChar(Edit1.Text)); //将FromBuf填入源目录
    StrPCopy(ToBuf, PChar(Edit2.Text)); //将ToBuf填入目的目录
    with OPS do
    begin
    Wnd:= Handle;
    wFunc:= FO_MOVE; //进行移动
    pFrom:= @FromBuf;
    PTo:= @ToBuf;
    fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
    fAnyOperationsAborted:= False;
    hNameMappings:= nil;
    lpszProgressTitle:= '正在移动';
    end;
    if SHFileOperation(OPS)= 0 then
    MessageBox(Handle, '移动成功!', '移动信息', MB_OK+ MB_ICONINFORMATION);

    end;

    end.

  • 相关阅读:
    Vue 多层组件传值(最外层组件>中间组件>最内部组件)
    Vue 父子组件传值 (Vue-cli4)
    CSS HTML 基本知识 盒子模型 Flex等
    Vue---基本知识
    springboot ---邮件和定时任务 和异步
    js中.bind()和.call()用法讲解
    为页内的tab添加的iframe添加加载动画过渡效果
    JMETER学习宝典
    新篇章,新起点
    计划拟定(现阶段)
  • 原文地址:https://www.cnblogs.com/fuhuo/p/11152209.html
Copyright © 2011-2022 走看看