ある場所から別の場所にファイルをコピーまたは移動するOSXプログラムを作成するためのベストプラクティスはあるのでしょうか。
おまけの質問:これらの方法の1つで「コピー12%完了」のパーセンテージを取得するにはどうすればよいですか?
ご協力いただきありがとうございます!
NSFileManagerとNSWorkspaceには、どちらもファイルを移動、コピー、削除するメソッドがあります。扱いやすいので、通常はNSFileManagerを使用します。
if ( [[NSFileManager defaultManager] isReadableFileAtPath:source] )
[[NSFileManager defaultManager] copyItemAtURL:source toURL:destination error:nil];
ただし、NSWorkspaceではファイルをゴミ箱に簡単に移動できますが、NSFileManagerではできません。
[[NSWorkspace sharedWorkspace] performFileOperation:NSWorkspaceRecycleOperation source:foldername destination:@"" files:filenamesArray tag:&tag];
2つのクラスの詳細については、ドキュメントを確認してください。 ( NSFileManager 、 NSWorkspace )
[[NSFileManager defaultManager] copyItemAtPath:srcPath toPath:dstPath error:&error]
これがクラス参照へのリンクです:
FSCopyObjectAsync 関数を使用することもできます。ファイルコピーの進行状況を表示したり、FSCopyObjectAsync()を使用してファイルコピーをキャンセルしたりすることもできます。
これを見てください 投稿 。
FSCopyObjectAsyncはOS X v10.8で廃止予定です
copyfile(3) はFSCopyObjectAsyncの代替です。 ここ は、Progress Callbackを使用したcopyfile(3)の例です。