注册账号 登录
用友之家-用友软件论坛 返回首页

wozengcong的个人空间 https://www.oyonyou.com/?242966 [收藏] [复制] [分享] [RSS]

日志

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

已有 783 次阅读2013-4-26 20:28 |个人分类:Delphi7| 命名, 信息

 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;


路过

雷人

握手

鲜花

鸡蛋

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册账号

QQ|站长微信|Archiver|手机版|小黑屋|用友之家 ( 蜀ICP备07505338号|51072502110008 )

GMT+8, 2024-5-16 06:02 , Processed in 0.017867 second(s), 10 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

返回顶部