Delphi 文件的操作:重命名、复制、移动、删除(制作一个信息上传控件)

 Delphi 文件的操作:重命名、复制、移动、删除(制作一个信息上传控件)

第一种方法:

RenameFile('Oldname', 'Newname');
CopyFile(PChar('Oldname'), PChar('Newname'), False);
MoveFile(PChar('Oldname'), PChar('Newname'));
DeleteFile(文件名);

第二种方法:

                             在Delphi可以使用ShellApi单元中的函数SHFileOperation来实现消息上传控件的制作,

SHFileOperation函数可以实现各种文件操作,只需将文件操作命令(拷贝、剪切、删除、重命名)发送给

它,它就会实现Windows资源管理器那样的文件操作功能。该函数的声明如下:
function SHFileOperation(constract  lpFileOp : LPSHFILEOPSTRUCT): Integer;stdcall;

 

LPSHFILEOPSTRUCT的结构类型:
typedef struct _SHFILEOPSTRUCT{
  HWND hwnd;      // 显示对话框的句柄
  UINT wFunc;      // 指明操作类型,支持4种操作:FO_COPY拷贝、FO_MOVE剪切、

                       FO_DELETE删除、FO_RENAME重命名。
  LPCSTR pFrom;   // 源文件路径,可以是多个文件

  LPCSTR pTo;      // 目标路径,可以是路径或文件名,FO_DELETE时,该参数不起作用

  FILEOP_FLAGS fFlags;        // 标志,附加的风格选项

  BOOL fAnyOperationsAborted;  // 是否可被中断

  LPVOID hNameMappings;     // 文件映射名字,可在其它 Shell 函数中使用

  LPCSTR lpszProgressTitle;    // 只在 FOF_SIMPLEPROGRESS 时,指定对话框的标题。

}SHFILEOPSTRUCT;

 

例如:

uses ShellAPI;
type
  TFileCommand=(fcCopy,fcMove,fcDelete,fcRename);

procedure TForm1.FileOperation(aCommand: FileCommand; var aFromFile, aToFile: String);

var

  FileOp: TSHFileOPStruct;

begin

  ZeroMemory(@FileOp, sizeof(FileOp));

  FileOp.Wnd := Form1.Handle;

      //显示一个进度对话框,但不显示文件名。

  FileOp.fFlags := FOF_SimpleProgress;

    //String类型转换到PAnsiChar类型,需要经过AnsiString类型

   FileOp.pFrom := PAnsiChar( AnsiString(aFromFile)); 

   FileOp.pTo := PAnsiChar( AnsiString(aToFile));

   case aCommand of

    fcCopy: FileOp.wFunc := FO_COPY;       // 复制文件

    fcMove: FileOp.wFunc := FO_MOVE;      // 移动文件

    fcDelete: FileOp.wFunc := FO_DELETE;    //  删除文件

    fcRename: FileOp.wFunc := FO_RENAME;  //  重命名文件

  end;

  SHFileOperation(FileOp);

end;

 

 

 

 

 

 

你可能感兴趣的:(windows,struct,String,function,delete,Delphi)