当前位置:  开发笔记 > 前端 > 正文

使用Objective-C复制或移动文件的最佳方法是什么?

如何解决《使用Objective-C复制或移动文件的最佳方法是什么?》经验,为你挑选了3个好方法。

我想知道,有没有最好的做法来编写一个OSX程序,将文件从一个地方复制或移动到另一个地方?

我可以打电话给一些NSSomething方法吗?

我是否必须使用输入/输出流?

或者最好的方法是依靠将命令传递给finder?

奖金问题:如何使用这些方法之一获得百分比"复制12%完成"?

谢谢你的帮助!



1> Marc Charbon..:

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];

查看文档以获取有关这两个类的更完整描述.(NSFileManager,NSWorkspace)



2> Ed Marty..:

[[NSFileManager defaultManager] copyItemAtPath:srcPath toPath:dstPath error:&error]

这是类引用的链接:

http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/Reference/Reference.html#//apple_ref/occ/instm/NSFileManager/copyItemAtPath:toPath:error:



3> Parag Bafna..:

您还可以使用FSCopyObjectAsync函数.您可以显示文件复制进度,也可以使用FSCopyObjectAsync()取消文件复制.
看看这篇文章.

FSCopyObjectAsync在OS X v10.8中已弃用

copyfile(3)是FSCopyObjectAsync的替代方法.以下是带有Progress Callback的copyfile(3)的示例.

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有