将文件从SD卡位置复制到Android中的c语言中的另一个位置

时间:2015-03-16 08:59:26

标签: android c++ c android-ndk

我编写了一个代码,用于将文本文件从一个位置(/mnt/sdcard/Appfolder/filename.txt)复制到Android设备中的另一个位置(/data/test/log.txt),并使用ndk进行构建。

我不知道文件的名称,所以我把* .txt作为源文件。

int copy_file(char* src, char *dest) {

  FILE *p,*q;
  char *file1,*file2;
  int ch;

  file1 = src;
  p=fopen(file1,"r");
  if(p==NULL){
      printf("cannot open %s",file1);
      exit(0);
  }

   file2 = dest;
  q=fopen(file2,"w");
  if(q==NULL){
      printf("cannot open %s",file2);
      exit(0);
  }
  while((ch=getc(p))!=EOF)
      putc(ch,q);
  printf("\nCOMPLETED");
  fclose(p);
  fclose(q);
 return 0;
}

但是我收到了这个错误:

cannot open /mnt/sdcard/Appfolder/<filename.txt>

我做错了什么?

文件属性为660。

1 个答案:

答案 0 :(得分:1)

您可以使用system()功能执行此操作。例如,对于Windows,您可以使用copy命令复制txt文件。

system("copy C:\src\dir\*.txt C:\dest\dir\");

或使用变量(伪代码):

#define PATH_MAX        4096


char command[MAX_PATH * 2 + 6];
char *file1 = src, *file2 = dest;


strcpy(command, "copy ");
strcat(command, file1);
strcat(command, " ");
strcat(command, file2);

system(command);