文件到文件的復制
copyF2F(char * src, char *dst){ int in_fd, out_fd, n_chars; char buf[BUFFERSIZE]; /*如果目標文件是一個目錄,那么默認是在該目錄下建立一個與源文件同名的文件*/ if (isdir(dest_file)) { char c; char temp[10] = { '/0' }; char *r_temp; int n = strlen(src_file); int m = 0; /*讀取源文件的最后一級文件名作為目標文件名*/ while ((c = src_file[n - 1]) != '/') { temp[m] = c; m++; n--; } r_temp = strrev(temp); strcat(dest_file, r_temp); }}為文件建立硬鏈接 link(src, dst)
為文件建立軟鏈接smlink(src, dst)4.目錄到目錄的復制 “` int copyD2D(char *src_dir, char *dest_dir) { DIR *dp = NULL; struct dirent *dirp; char tempDest[256]; char tempSrc[256]; strcpy(tempDest, dest_dir); strcpy(tempSrc, src_dir);
/*使用opendir函數打開src_dir目錄,獲得指向該目錄名字的指針*/if ((dp = opendir(src_dir)) == NULL) return 1;else{ /*使用readdir函數讀取dp所指代目錄的目錄項,獲得指向下一個dirent結構的指針*/ while ((dirp = readdir(dp))) { struct stat file_stat; if (!isdir(dirp->d_name)) { /*將dirent結構中的d_name成員變量鏈接到上級目錄字符串*/ strcat(tempDest, dirp->d_name); strcat(tempSrc, dirp->d_name); /*此處轉換為文件復制函數的方式處理目錄復制*/ copyF2F(tempSrc, tempDest); /*通過字符串拷貝函數,將tempDest和tempSrc還原為上級的目錄名*/ strcpy(tempDest, dest_dir); strcpy(tempSrc, src_dir); } } /*關閉目錄*/ closedir(dp); return 0;}“`
新聞熱點
疑難解答