通过网络复制文件夹

时间:2012-01-07 08:26:03

标签: cocoa networking remote-desktop nsfilemanager

我正在编写一个应用程序,用于通过网络将文件和文件夹复制到客户端计算机。其他一切都很有效。这是我不知道如何进行文件复制 - 我查看了NSFileManager,但似乎这需要安装网络驱动器。我的目标是非常透明地模拟远程桌面的“复制文件”对话框。任何想法/帮助?

编辑:看起来像一个SCP包装,或者带有NSTask的SCP命令可以帮助我。但仍然想知道如何:[

1 个答案:

答案 0 :(得分:1)

如果您想知道如何使用NSTask或使用SCP,有点不清楚。

但这是一个使用NSTask的简单示例。 该命令的每个参数都必须放在一个数组中。 例如

的命令

/ bin / cp -R /Users/userName/Desktop/fooFolder/fooFile.foo / Users / suerName / Desktop / fooCopyToFolder

会这样做。

NSPipe *output;


        NSTask *task;
        task = [[NSTask alloc] init];



        NSString*   cpPath = @"/bin/cp";
        NSString* sourcePath =@"/Users/userName/Desktop/fooFolder/fooFile.foo";

       NSString* finalPath = @"/Users/suerName/Desktop/fooCopyToFolder";
        [task setLaunchPath:cpPath];



        [task setArguments:[NSArray arrayWithObjects:@"-R",sourcePath ,finalPath, nil]];
        output = [[NSPipe alloc] init];

        [task setStandardOutput:output];
        [task setStandardInput:[NSPipe pipe]];

        [task launch];
        [task waitUntilExit];

        int status = [task terminationStatus];

        if (status == 0)  {


            NSLog(@"task succeeded. %i",status);

        }   else {

            NSLog(@"task failed.%i",status);
            ;
        }