<分区>
我想在 Mac OS X 下尽可能快地复制(或移动)文件,同时保持对复制过程的控制: - 如果目标文件已经存在,有办法询问是否(覆盖、跳过、重命名),即使它是复制目录的子目录。 - 复制过程有进展(剩余时间、大小、...)
谢谢你的帮助
<分区>
我想在 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。 这可能不是您问题的直接答案,但可能会让您更进一步:)
关于c - 使用 unix 函数在 OSX 下移动/复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8268767/