2014-04-04 179 views
0

我正在通過在c中根據其特定類型創建子文件夾來創建移動目錄文件的項目。我已經通過POSIXdirent.h幫助創建了目錄,用於主目錄中具有不同擴展名的文件但我不知道如何從主目錄中剪切文件並粘貼到其特定的子文件夾中。請引導我如何在一個目錄中將cutpaste文件從c中移到另一個目錄中。如何將文件從一個目錄移動到另一個目錄?

+0

請參考http://msdn.microsoft.com/en-us/library/cc148994.aspx,希望這將解決這個問題 – Sorcrer

回答

-1

使用

重命名(DestinationFilepath,SourceFilepath);

更多信息檢查手冊頁http://linux.die.net/man/2/rename

兩個不同的系統使用捲曲庫。 http://en.wikipedia.org/wiki/CURL

C代碼

#include <unistd.h> 
#include <stdio.h> 
#include <dirent.h> 
#include <string.h> 
#include <sys/stat.h> 
#include <stdlib.h> 
#include <time.h> 

#define DESTINATION_FOLDER "/home/second/" 
#define SOURCE_FOLDER "/home/first/" 

void printdir() 
{ 
    DIR *dp; 
    struct dirent *entry; 
    struct stat statbuf; 
    struct tm  *tm; 

    char src_folder[1024]; 
    char dest_folder[1024]; 


    if((dp = opendir(SOURCE_FOLDER)) == NULL) { 
     fprintf(stderr,"cannot open directory: %s\n", SOURCE_FOLDER); 
     return; 
    } 
    chdir(SOURCE_FOLDER); 
    while((entry = readdir(dp)) != NULL) { 
     lstat(entry->d_name,&statbuf); 

     if(!S_ISDIR(statbuf.st_mode)) \ 
     { 
      sprintf(src_folder,"%s%s", SOURCE_FOLDER,entry->d_name); 
      sprintf(dest_folder,"%s%s", DESTINATION_FOLDER,entry->d_name); 
      printf("%s----------------%s\n",entry->d_name,dest_folder); 
      rename(src_folder, dest_folder); 
     } 
    } 
    chdir(".."); 
    closedir(dp); 
} 

int main() 
{ 
    while(1) 
    { 
     printdir(); 
    } 
    rename("aaa.txt", "/home/second/bbb.txt"); 
    printf("done.\n"); 
    exit(0); 
} 
+1

這隻會如果源工作和目標位於同一個分區上。 – alk

+0

同分區表示??? – someone

+0

@someone請給我一些參考lstat()函數。 – YakRangi

相關問題