有n个文件大小不一。我们如何才能有效地将所有文件的内容附加到单个文件中?
技术或算法有帮助吗?基本上我期待用c语言实现这一目标的有效方法。
答案 0 :(得分:3)
开始简单。多线程将引入显着的复杂性,并不一定会使事情运行得更快。伪代码时间:
Create a new file "dest" in write-only mode.
For each file "source" you want to append:
Open "source" in read-only mode
For each line "L" in "source":
Write "L" to "dest"
Close "source"
Close "dest"
cat
等)来实现这一点很简单(并且接近最优),尽管它不能完全移植到Windows。单线示例:
for i in `find . -type f -name "*.txt"`; do cat $i >> result.out; done
(查找当前目录中的每个.txt
文件并将其附加到result.out
。)
答案 1 :(得分:2)
浏览并找到所有文件的总大小。
然后分配该大小的输出文件,再次浏览它们并将数据写入输出。
答案 2 :(得分:1)
由于我不知道文件的内容是什么或附加它们的目的,如果只是文本或其他东西,这个解决方案可能不是最好的。但是,我可能会找到一个可以使用的zip库(许可或开源),然后将所有文件压缩到一个存档中。
zlib看起来很有趣:http://www.zlib.net/
答案 3 :(得分:0)