This topic created in 3158 days ago, the information mentioned may be changed or developed.
现在的项目需要写一个下载工具,GitHub 上看了一下,很多下载都喜欢弄一个临时目录,但是迅雷、aria2 等下载不是直接就下载到需要保存的目录了吗?
查了一下,是不是历史原因,以前可能需要保存的文件夹可能会出现磁盘空间不够,所以先下载到临时目录再拷贝过去?
是不是现在我可以直接想 aria2 一样直接下载到需要保存的目录,然后减少一次拷贝工作,这个的坑在哪?
9 replies • 2017-09-20 13:18:50 +08:00
 |
|
1
ysc3839 Sep 20, 2017
“很多下载”?能否举个例子?
|
 |
|
3
yonka Sep 20, 2017
1. 下载都需要写文件,内存 buf 不够 2. 写临时文件然后下载完 copy/move 过去(可能)可以保证文件完整性 3. 直接写文件的话,需要区分“是否完整文件”,比较麻烦 4. 迅雷等一般是在当前目录下存储“临时文件”,不过是特殊的临时文件,额外记录了进度信息等。 因为迅雷等要支持断点续传,如果写在临时目录,续传时可能就被清理了。
|
 |
|
5
murmur Sep 20, 2017
下载的如果真的是临时文件,那么用户随便运行个垃圾清理软件就可以把这些东西删掉了 另外 temp 目录一般不需要权限吧 安装的时候和用户要一次提权就可以了 另外国内软件现在用 temp 的应该一半一半了,360 系的反正都不咋用临时目录,下载的安装包、驱动什么都可以拷出来
|
 |
|
6
nifury Sep 20, 2017
LZ 说的是像 IDM 那样分块下载再合并的么? IDM 这样做好像是因为多线程下载操作同一个文件的话容易出现问题(我真不知道为何容易出现问题)
|