0

最初にアイテムを削除せずに、アイテムをダウンロードからゴミ箱フォルダに移動しようとしています。以下の実装で欠けているのは、ファイルが移動されていないことです。


仕様:

 NSString *trashpath=[NSHomeDirectory() stringByAppendingPathComponent:@".Trash"];
 NSString *downloadpath=[NSHomeDirectory() stringByAppendingPathComponent:@"Downloads"];

- (void) moveToTrash{
    NSError * error = nil;
    NSArray * list =  [_filemanager contentsOfDirectoryAtPath:_downloadpath error:&error];


    //Move items to the trash
    for(id obj in list){
        NSString *sourcepath = [_downloadpath stringByAppendingPathComponent:obj];
        NSString *destpath= [_trashpath stringByAppendingPathComponent:obj];

        if([_filemanager moveItemAtPath:sourcepath toPath:destpath error:&error] == YES)
            NSLog(@"Moved to trash :%@ ",destpath);
        else
            NSLog(@"Unable to move %@ ",sourcepath);

    }
}

BergQuester の提案に従って、以下のコードを試しました

   if([[NSWorkspace sharedWorkspace] performFileOperation:NSWorkspaceRecycleOperation source:_downloadpath
        destination:@"" files:list tag:nil] == YES)
        NSLog(@"Moved to Trash");
    else
        NSLog(@"Unable to move :%@",[error localizedFailureReason]);

出力に Unable to move :(null) が表示されます。

ファイルは確かにそこにあるので、まだ何が問題なのかわかりません。

4

1 に答える 1