1. 程式人生 > >linux下C++移動檔案和資料夾 複製檔案

linux下C++移動檔案和資料夾 複製檔案

功能: 給一個檔案重新命名
用 法: int rename(char *oldname, char *newname);
標頭檔案:#include <stdio.h>
說明:用該函式可以實現檔案移動功能,把一個檔案的完整路徑的碟符改一下就實現了這個檔案的移動。具體參見下面的程式示例說明。
#include <stdio.h>
int rename(const char *oldpath, const char *newpath);
函式說明
(1) 如果oldname為一個檔案而不是目錄,那麼為該檔案更名。在這種情況下,如果newname作為一個目錄已存在,則它不能重新命名一個目錄。如果newname已存在,而且不是一個目錄,則先將其刪除然後將oldname更名為newname。對oldname所在目錄以及newname所在的目錄,呼叫程序必須具有寫許可權,因為將更改這兩個目錄。
(2) 如若oldname為一個目錄,那麼為該目錄更名。如果newname已存在,則它必須是一個目錄,而且該目錄應當是空目錄(空目錄指的是該目錄中只有. 和.. 項)。如果newname存在(而且是一個空目錄),則先將其刪除,然後將oldname更名為newname。另外,當為一個目錄更名時,newname不能包含oldname作為其路徑字首。例如,不能將/usr更名為/usr/foo/testdir,因為老名字( /usr/foo)是新名字的路徑字首,因而不能將其刪除。
(3) 作為一個特例,如果oldname和newname引用同一檔案,則函式不做任何更改而成功返回。
返回值 執行成功則返回0,失敗返回-1,錯誤原因存於errno


void CopyFile(char* sourcefile, char* destfile)
{
    string command = "cp ";
    command  += sourcefile;
    command  += " ";
    command  += destfile;//cp /home/file1 /root/file2
    system((char*)command.c_str());//
}