Delphi 文件的操做:重命名、複製、移動、刪除

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;

相關文章
相關標籤/搜索