c - 使用 unix 函数在 OSX 下移动/复制文件

标签 c macos file unix copy

<分区>

我想在 Mac OS X 下尽可能快地复制(或移动)文件,同时保持对复制过程的控制: - 如果目标文件已经存在,有办法询问是否(覆盖、跳过、重命名),即使它是复制目录的子目录。 - 复制过程有进展(剩余时间、大小、...)

谢谢你的帮助

最佳答案

学习如何做到这一点的一个好方法是查看开源项目的现有代码。想到的一个工具可以完成您正在谈论的所有检查(检查是否存在、进度等)是 rsync。

例如,如果您想了解如何向用户报告进度,请检查源代码以了解它在何处解析“--progress”参数,查看由此调用了哪些函数,并尝试理解。在这种情况下,您将在 progress.c 中结束,其中文件的内容是具有以下定义的函数

/**
 * @param ofs Current position in file
 * @param size Total size of file
 * @param is_last True if this is the last time progress will be
 * printed for this file, so we should output a newline.  (Not
 * necessarily the same as all bytes being received.)
 **/
static void rprint_progress(OFF_T ofs, OFF_T size, struct timeval *now,
                int is_last)

普通的 C 和跨一系列操作系统的可移植性 - 不仅仅是 OS X。 这可能不是您问题的直接答案,但可能会让您更进一步:)

Source code for rsync

关于c - 使用 unix 函数在 OSX 下移动/复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8268767/

相关文章:

json - CasperJs 从本地文件加载json数据

java - 如何查看 Formatter 类创建的文件的输出

c - 用 malloc 分配的内存不会在函数范围之外持续存在?

c - 二维数组的 malloc()

c - 初始化指向动态内存的全局指针时出错

python : ValueError: invalid literal for int() with base 10: ' '

头文件中的 C 函数实现

cocoa - 如何阻止应用程序的终止

swift - 如何在 macOS 上以编程方式在 Swift 中添加 NSView

swift - macOS, swift 3 : How to get data back after segue?