Delphi 文件的操做:重命名、复制、移动、删除app
第一种方法:函数
RenameFile('Oldname', 'Newname'); CopyFile(PChar('Oldname'), PChar('Newname'), False); MoveFile(PChar('Oldname'), PChar('Newname')); DeleteFile(文件名);orm
第二种方法: 资源
在Delphi可使用ShellApi单元中的函数SHFileOperation来实现消息上传控件的制做, SHFileOperation函数能够实现各类文件操做,只需将文件操做命令(拷贝、剪切、删除、重命名)发送给 它,它就会实现Windows资源管理器那样的文件操做功能。该函数的声明以下:it
function SHFileOperation(constract lpFileOp : LPSHFILEOPSTRUCT): Integer;stdcall;io
LPSHFILEOPSTRUCT的结构类型:function
typedef struct _SHFILEOPSTRUCT{ 方法
HWND hwnd; // 显示对话框的句柄 im
UINT wFunc; // 指明操做类型,支持4种操做:FO_COPY拷贝、FO_MOVE剪切、 FO_DELETE删除、FO_RENAME重命名。call
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;