2011年6月11日土曜日

Cocoa NSTableView ドラッグアンドドロップ(7)

ファイル操作を担当するControllerをアプリのメインコントローラー側に移し、ファイル操作の開始はNotificationで通知するようにした。

で、そろそろ始めようか、ということで実際にファイルのコピーをやってみた。
NSFileManageのcopyItemAtURL: toURL: error:でNSURLを使うパターン。書いたコードはこんなところ。
-(IBAction)startFileOperation:(id)sender{
    NSError* error;
    for (NSURL *item in operationFileArray){
        NSURL* dstURL=[NSURL fileURLWithPath:[destLabel objectValue]];
        dstURL=[dstURL URLByAppendingPathComponent:[item lastPathComponent]];
        NSLog(@"srcURL %@",[item path]);
        NSLog(@"dstURL %@",[dstURL path]);
        if(![[NSFileManager defaultManager] copyItemAtURL:item toURL:dstURL error:&error]){
            NSLog(@"sometithg wroth %@",error);
        }
        
    }

    [self sheetClose:self];
}
これで実際にファイルのコピーはできる。こうなると今度は、「ファイルをゴミ箱に」機能をつけたくなる。これは明日以降。

さらに、エラーが出た場合、どうやって処理をするかを考える。ファイル操作とユーザ権限は切っても切れにない関係にあるので、そのあたりも勉強が必要。

大きなサイズのファイルのコピーとかもやってみないといけないし、やるべきことがいっぱいで楽しい。

0 件のコメント:

コメントを投稿