论文部分内容阅读
案例需求描述
网友A用自己的一台机器下载连续剧,而硬盘空间已经吃紧,存不了几部就会爆满,但他已经将获得的许多种子全都加入到迅雷的下载列表中并开始下载了。现在的问题是,大批电影下载任务加入下载列表,下载一段时间后很可能造成本地硬盘爆满,下载任务自动暂停。虽说身边的一台内网服务器有大容量存储空间可用来备份。但若是时不时地要去看下载任务,并将已经下载的影片移动到服务器上存储,又比较麻烦。
还有一个问题,那就是已经下载的文件的转移也不是轻而易举的。因为多数下载软件在文件下载完成后仍然承担着为别人上传这些文件的任务,因此这些已下载文件往往是被下载软件随机锁定的,只有当不锁定的时候才允许移动。如果想要强行移动,只能用解锁工具先解锁,或者等其闲置的时候移动。但判断某文件是否正在被锁定,手工的办法只能靠碰运气,能移动则说明未被锁定,不能移动则说明正在锁定。
那么,能不能想办法让电脑自动监控已经下载的电影文件,如果文件存在,就将其统统移动到服务器的存储空间,从而保证本地硬盘始终是“轻装”作业呢?
具体设计思路
将服务器空间映射为本地盘符
首先,为了方便下载文件的转移,我们将服务器上可用来存储视频备份的文件夹映射为本地的一个盘符(例如本例我们映射为Z盘),这可以在我的电脑中用“工具→映射网络驱动器”命令来实现。
用内部移动文件命令转移文件
为了移动文件,我们借助于操作系统的一个命令MOVE来实现文件的移动。将这个命令写入自动批处理文件中。
判断文件是否存在和是否被锁定
这个批处理文件需要一直运行,循环不停,也就是说要编写一个死循环程序,一旦程序运行后就要不断判断是否存在已经下载好的文件并执行移动命令。
编写简单的代码
根据以上思路,我们就可以设计出一个批处理程序。很简单,只需用记事本录入如图中的代码,并将文件以“自动转移.BAT”存盘保存即可(注意扩展名一定要是BAT而不能是TXT)。
在此之前,我们需要先在位于下载分区的磁盘上建立一个与存放下载文件的文件夹同级别的文件夹“电影仓库”,用来临时接纳下载好的文件。在服务器共享文件夹下(也就是本地盘符的Z盘中)也建立一个“电影仓库”文件夹,用来放置最终的电影文件。
程序的不断循环不但可以判断文件是否已经下载好,更重要的一个作用是能不断捕捉文件是否被锁定,虽然被锁定的文件不允许移动,但一旦文件被解除锁定,命令马上会将其移动到临时备份目录中供转移之用。
让程序投入运行
将以上批处理程序拷贝到本地存储电影文件的目标目录中,并给此批处理建立桌面快捷方式以便访问。
当下载任务开始后,执行一下该批处理任务,批处理进入死循环,不断判断下载目录中是否存在电影文件,并完成已下载文件向服务器空间的转移。
如果你怕忘记了执行该命令而造成硬盘爆满,则可将此批处理程序加入到系统“启动”组中,让其在系统启动后自动运行,迅雷的影视剧下载任务也可以设置成开机自动启动和下载任务自动运行状态。这样一来,所有下载任务就可以不用人管了。你只需提前加入十天八天的下载任务,其余的,只要机子一开,就由电脑自己去完成了。
至此,下载机打造完毕。你不需要再去看电影是否下载完成,只管到服务器空间收获已经下载好的片子去选择欣赏了!
小提示
仿造以上思路,可以将程序改造为任何类型资源的网络自动搬家下载机,你只需修改程序中MOVE命令行中的文件类型和目标地址即可达到个性化下载机定制的目的。也许有人会问,为何不直接下载到服务器中而选择搬家?我的理由是,如果在你刚刚开始下载时服务器就被人关掉了,那么你一个电影也下载不到,因此才选择此更稳妥的方法,这种方法至少可以保证即便服务器关机,也能先下满自己的硬盘。
网友A用自己的一台机器下载连续剧,而硬盘空间已经吃紧,存不了几部就会爆满,但他已经将获得的许多种子全都加入到迅雷的下载列表中并开始下载了。现在的问题是,大批电影下载任务加入下载列表,下载一段时间后很可能造成本地硬盘爆满,下载任务自动暂停。虽说身边的一台内网服务器有大容量存储空间可用来备份。但若是时不时地要去看下载任务,并将已经下载的影片移动到服务器上存储,又比较麻烦。
还有一个问题,那就是已经下载的文件的转移也不是轻而易举的。因为多数下载软件在文件下载完成后仍然承担着为别人上传这些文件的任务,因此这些已下载文件往往是被下载软件随机锁定的,只有当不锁定的时候才允许移动。如果想要强行移动,只能用解锁工具先解锁,或者等其闲置的时候移动。但判断某文件是否正在被锁定,手工的办法只能靠碰运气,能移动则说明未被锁定,不能移动则说明正在锁定。
那么,能不能想办法让电脑自动监控已经下载的电影文件,如果文件存在,就将其统统移动到服务器的存储空间,从而保证本地硬盘始终是“轻装”作业呢?
具体设计思路
将服务器空间映射为本地盘符
首先,为了方便下载文件的转移,我们将服务器上可用来存储视频备份的文件夹映射为本地的一个盘符(例如本例我们映射为Z盘),这可以在我的电脑中用“工具→映射网络驱动器”命令来实现。
用内部移动文件命令转移文件
为了移动文件,我们借助于操作系统的一个命令MOVE来实现文件的移动。将这个命令写入自动批处理文件中。
判断文件是否存在和是否被锁定
这个批处理文件需要一直运行,循环不停,也就是说要编写一个死循环程序,一旦程序运行后就要不断判断是否存在已经下载好的文件并执行移动命令。
编写简单的代码
根据以上思路,我们就可以设计出一个批处理程序。很简单,只需用记事本录入如图中的代码,并将文件以“自动转移.BAT”存盘保存即可(注意扩展名一定要是BAT而不能是TXT)。
在此之前,我们需要先在位于下载分区的磁盘上建立一个与存放下载文件的文件夹同级别的文件夹“电影仓库”,用来临时接纳下载好的文件。在服务器共享文件夹下(也就是本地盘符的Z盘中)也建立一个“电影仓库”文件夹,用来放置最终的电影文件。
程序的不断循环不但可以判断文件是否已经下载好,更重要的一个作用是能不断捕捉文件是否被锁定,虽然被锁定的文件不允许移动,但一旦文件被解除锁定,命令马上会将其移动到临时备份目录中供转移之用。
让程序投入运行
将以上批处理程序拷贝到本地存储电影文件的目标目录中,并给此批处理建立桌面快捷方式以便访问。
当下载任务开始后,执行一下该批处理任务,批处理进入死循环,不断判断下载目录中是否存在电影文件,并完成已下载文件向服务器空间的转移。
如果你怕忘记了执行该命令而造成硬盘爆满,则可将此批处理程序加入到系统“启动”组中,让其在系统启动后自动运行,迅雷的影视剧下载任务也可以设置成开机自动启动和下载任务自动运行状态。这样一来,所有下载任务就可以不用人管了。你只需提前加入十天八天的下载任务,其余的,只要机子一开,就由电脑自己去完成了。
至此,下载机打造完毕。你不需要再去看电影是否下载完成,只管到服务器空间收获已经下载好的片子去选择欣赏了!
小提示
仿造以上思路,可以将程序改造为任何类型资源的网络自动搬家下载机,你只需修改程序中MOVE命令行中的文件类型和目标地址即可达到个性化下载机定制的目的。也许有人会问,为何不直接下载到服务器中而选择搬家?我的理由是,如果在你刚刚开始下载时服务器就被人关掉了,那么你一个电影也下载不到,因此才选择此更稳妥的方法,这种方法至少可以保证即便服务器关机,也能先下满自己的硬盘。