1

我正在尝试使用用户界面制作一个非常简单的 rsync 程序。我所需要的只是能够拖放两个文件路径,以便将一个复制到另一个。现在我只是想把我桌面上的一个文件复制到桌面上的一个文件夹中,这甚至行不通。我正在使用标题为“源”和“目标”的文本字段来删除我拖入其中的文件路径。我有以下代码:

#import "AppController.h"

@implementation AppController

@synthesize source = _source, destination = _destination;

-(IBAction)sync:(id)sender
{
 NSFileManager *manager = [[NSFileManager alloc] init];
    //NSURL *source = [NSURL fileURLWithPath:@"/Users/crashprophet/Desktop/Time Out Tot Schedule.doc"];
  //  NSURL *destination = [NSURL fileURLWithPath:@"/Users/crashprophet/Desktop/untitled f     older 2"];
NSURL *source = [NSURL URLWithString:self.source.stringValue];
NSURL *destination = [NSURL URLWithString:self.destination.stringValue];


[manager copyItemAtURL:source toURL:destination error:nil];
NSLog(@"The source path is %@ and the destation path is %@",source, destination);
NSLog(@"Got here!");
}

@end

有任何想法吗?

4

1 回答 1

4

您需要使用 fileURLWithPath: 如果您的字符串看起来像您评论中的字符串。此外,目标路径不能只是一个文件夹,它的末尾需要一个文件名——您可以使用与原始文件名相同的文件名,也可以给它一个新的文件名。从您正在使用的复制方法的文档中:

“dstURL 放置 srcURL 副本的 URL。此参数中的 URL 不能是文件引用 URL,并且必须在其新位置包含文件的名称。此参数不能为 nil。”

于 2012-05-24T03:29:44.333 回答