我想使用curl从多个部分同时使用多线程下载数据从互联网。但是,当下载完成时,我遇到了问题,我必须将所有部分合并在一起,这会浪费内存并耗费很长时间。如何分配磁盘中的文件来写入数据C++
我看到Torrent和Flashget使用这种技术,我的名字我不知道。在下载之前,Torrent获取文件的内容长度并自动在磁盘中分配一个空文件。之后,如果下载恢复,则下载的数据将填充此分配的文件。 Torrent或Flashget会检查这个分配的文件以获取它已经下载的字节,然后他们恢复下载。
任何人都可以用这种技术来帮助我,或者给我一些关于这个文件的链接?如果你可以用c#或C++建议我的例子,那将会很棒。写作
1.打开文件:感谢您的帮助
那么你可以[SetFilePointer](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365541(v = vs.85).aspx)任意长度,然后[SetEndOfFile ](https://msdn.microsoft.com/en-us/library/windows/desktop/aa365531(v = vs.85).aspx)来扩展它,但我不确定这将有助于_“Torrent或Flash获取将检查此分配文件以获取字节已下载并恢复下载“_”。你需要跟踪下载的内容。 _ [这可能也有用](http:// stackoverflow。com/questions/12434306/in-general-how-do-resuming-a-download-work)_ – MickyD
你是指稀疏文件吗? https://msdn.microsoft.com/en-us/library/windows/desktop/aa365564%28v=vs.85%29.aspx –