1

ユーザーインターフェイスを備えた非常に単純な rsync プログラムを作成しようとしています。必要なのは、2 つのファイル パスをドラッグ アンド ドロップして、一方が他方にコピーされる機能だけです。今のところ、デスクトップ上の 1 つのファイルをデスクトップ上のフォルダーにコピーしようとしているだけですが、うまくいきません。「ソース」と「宛先」というタイトルのテキスト フィールドを使用して、ドラッグしたファイル パスを取り除きます。次のコードがあります。

#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 に答える