D:\文件\USB\WAN\WAN

解决方案 »

  1.   

    Performs a copy, move, rename, or delete operation on a file system object. WINSHELLAPI int WINAPI SHFileOperation(    LPSHFILEOPSTRUCT lpFileOp
       );
     ParameterslpFileOpPointer to an SHFILEOPSTRUCT structure that contains information the function needs to carry out the operation. Return ValuesReturns zero if successful or nonzero if an error occurs.
      

  2.   

    用这个函数就可以了,它有了DELPHI的外衣了
    Contains information that the SHFileOperation function uses to perform file operations.typedef struct _SHFILEOPSTRUCT { // shfos  
        HWND         hwnd; 
        UINT         wFunc; 
        LPCSTR       pFrom; 
        LPCSTR       pTo; 
        FILEOP_FLAGS fFlags; 
        BOOL         fAnyOperationsAborted; 
        LPVOID       hNameMappings; 
        LPCSTR       lpszProgressTitle; 
    } SHFILEOPSTRUCT, FAR *LPSHFILEOPSTRUCT; 
     MembershwndHandle of the dialog box to use to display information about the status of the operation. wFuncOperation to perform. This member can be one of the following values:FO_COPY Copies the files specified by pFrom to the location specified by pTo.
    FO_DELETE Deletes the files specified by pFrom (pTo is ignored).
    FO_MOVE Moves the files specified by pFrom to the location specified by pTo.
    FO_RENAME Renames the files specified by pFrom. 
     pFromPointer to a buffer that specifies one or more source file names. Multiple names must be null-separated. The list of names must be double null-terminated.pToPointer to a buffer that contains the name of the destination file or directory. The buffer can contain mutiple destination file names if the fFlags member specifies FOF_MULTIDESTFILES. Multiple names must be null-separated. The list of names must be double null-terminated.fFlagsFlags that control the file operation. This member can be a combination of the following values:FOF_ALLOWUNDO Preserves undo information, if possible.
    FOF_CONFIRMMOUSE Not implemented.
    FOF_FILESONLY Performs the operation only on files if a wildcard filename (*.*) is specified.
    FOF_MULTIDESTFILES Indicates that the pTo member specifies multiple destination files (one for each source file) rather than one directory where all source files are to be deposited.
    FOF_NOCONFIRMATION Responds with "yes to all" for any dialog box that is displayed.
    FOF_NOCONFIRMMKDIR Does not confirm the creation of a new directory if the operation requires one to be created.
    FOF_RENAMEONCOLLISION Gives the file being operated on a new name (such as "Copy #1 of...") in a move, copy, or rename operation if a file of the target name already exists.
    FOF_SILENT Does not display a progress dialog box.
    FOF_SIMPLEPROGRESS Displays a progress dialog box, but does not show the filenames.
    FOF_WANTMAPPINGHANDLE Fills in the hNameMappings member. The handle must be freed by using the SHFreeNameMappings function.
     fAnyOperationsAbortedValue that receives TRUE if the user aborted any file operations before they were completed or FALSE otherwise.hNameMappingsHandle of a filename mapping object that contains an array of SHNAMEMAPPING structures. Each structure contains the old and new path names for each file that was moved, copied, or renamed. This member is used only if fFlags includes FOF_WANTMAPPINGHANDLE.lpszProgressTitlePointer to a string to use as the title for a progress dialog box. This member is used only if fFlags includes FOF_SIMPLEPROGRESS. ResIf pFrom or pTo are unqualified names, the current directories are taken from the global current drive and directory settings as managed by the GetCurrentDirectory and SetCurrentDirectory functions.
      

  3.   

    注:在 uses 部分要包含 shellapi 单元
    有以下两种方法可以删除整个目录:方法一:
    procedure TForm1.Button1Click(Sender: TObject);
    Var
    T:TSHFileOpStruct;
    P:String;
    begin
    P:='C:\WINDOWS\TEMP';//这里改成你要删除的任意目录名
    With T do
    Begin
    Wnd:=0;
    wFunc:=FO_DELETE;
    pFrom:=Pchar(P);
    pTo:=nil;
    fFlags:=FOF_ALLOWUNDO+FOF_NOCONFIRMATION+FOF_NOERRORUI;//标志表明允许恢复,无须确认并不显示出错信息
    hNameMappings:=nil;
    lpszProgressTitle:='正在删除文件夹';
    fAnyOperationsAborted:=False;
    End;
    SHFileOperation(T);
    end;方法二:
    procedure TForm1.Button1Click(Sender: TObject);
    var
    APath: AnsiString;
    lpFileOp: TSHFileOpStruct;
    begin
    APath:='e:\windser\000'#0#0;//指定目录
    with lpFileOp do
    begin
    wnd:=self.handle;
    wFunc:=FO_Delete;
    pFrom:=PChar(APath);
    pTo:=nil;
    fFlags:=FOF_AllowUndo;
    hNameMappings:=nil;
    lpszProgressTitle:=nil;
    fAnyOperationsAborted:=true;
    end;
    if SHFileOperation(lpFileOp)=0 then
    ShowMessage('删除成功!')
    else
    ShowMessage('删除失败!');
    end;