文件到文件的復(fù)制
copyF2F(char * src, char *dst){ int in_fd, out_fd, n_chars; char buf[BUFFERSIZE]; /*如果目標(biāo)文件是一個(gè)目錄,那么默認(rèn)是在該目錄下建立一個(gè)與源文件同名的文件*/ if (isdir(dest_file)) { char c; char temp[10] = { '/0' }; char *r_temp; int n = strlen(src_file); int m = 0; /*讀取源文件的最后一級(jí)文件名作為目標(biāo)文件名*/ 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.目錄到目錄的復(fù)制 “` 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函數(shù)打開src_dir目錄,獲得指向該目錄名字的指針*/if ((dp = opendir(src_dir)) == NULL) return 1;else{ /*使用readdir函數(shù)讀取dp所指代目錄的目錄項(xiàng),獲得指向下一個(gè)dirent結(jié)構(gòu)的指針*/ while ((dirp = readdir(dp))) { struct stat file_stat; if (!isdir(dirp->d_name)) { /*將dirent結(jié)構(gòu)中的d_name成員變量鏈接到上級(jí)目錄字符串*/ strcat(tempDest, dirp->d_name); strcat(tempSrc, dirp->d_name); /*此處轉(zhuǎn)換為文件復(fù)制函數(shù)的方式處理目錄復(fù)制*/ copyF2F(tempSrc, tempDest); /*通過字符串拷貝函數(shù),將tempDest和tempSrc還原為上級(jí)的目錄名*/ strcpy(tempDest, dest_dir); strcpy(tempSrc, src_dir); } } /*關(guān)閉目錄*/ closedir(dp); return 0;}“`
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注