2012-03-21 14 views
0

ネイティブCプログラムでディレクトリのファイルを別のディレクトリにコピーしたいと思います。 system機能を使用しようとしましたが、機能しません。Androidのネイティブコードを使用して、あるディレクトリから別のディレクトリにファイルをコピーする方法は?

system("cp /mnt/test /mnt/test2"); // It's not working

も私もsystem機能がバイオニックのlibcでサポートされていることを知ってほしいです。

ご協力いただければ幸いです。

+0

AndroidはJava、ネイティブCはどういう意味ですか? –

+0

@WaynnLue私はここにAndroid NDKを使用しています – user1089679

+0

あなたはJava側でそれを行うことを検討しましたか? – enobayram

答えて

1

Androidシェルにはcpコマンドがありません。可能であれば、cat source_file > dest_fileを試してください。

それとも、このコードを使用し、

FILE *from, *to; 
    char ch; 


    if(argc!=3) { 
    printf("Usage: copy <source> <destination>\n"); 
    exit(1); 
    } 

    /* open source file */ 
    if((from = fopen("Source File", "rb"))==NULL) { 
    printf("Cannot open source file.\n"); 
    exit(1); 
    } 

    /* open destination file */ 
    if((to = fopen("Destination File", "wb"))==NULL) { 
    printf("Cannot open destination file.\n"); 
    exit(1); 
    } 

    /* copy the file */ 
    while(!feof(from)) { 
    ch = fgetc(from); 
    if(ferror(from)) { 
     printf("Error reading source file.\n"); 
     exit(1); 
    } 
    if(!feof(from)) fputc(ch, to); 
    if(ferror(to)) { 
     printf("Error writing destination file.\n"); 
     exit(1); 
    } 
    } 

    if(fclose(from)==EOF) { 
    printf("Error closing source file.\n"); 
    exit(1); 
    } 

    if(fclose(to)==EOF) { 
    printf("Error closing destination file.\n"); 
    exit(1); 
    } 

はまたのAndroidManifest.xmlファイル ..

EDITに

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> 

を述べた:

ヨあなたはdd if=source_file of=dest_fileも使用できます。

リダイレクトのサポートは不要です。

+0

また、システム機能でさえもbionic libcでサポートされていることを知りたいと思います。 – user1089679

+0

私はまた、cpコマンドのビジーボックスをインストールしました。 cpコマンドはAndroidシェルで動作していますが、ネイティブのCコードからこのコマンドを呼び出したい – user1089679

+0

私はadbコマンドを実行するためにCコードで** execl()**コマンドを使用しました。 – user370305

関連する問題