假如一个文件正在被下载,用C编程如何得知这个文件是否已经下载完成?

来源:百度知道 编辑:UC知道 时间:2024/07/02 20:33:56
假设,路径一个文件example.exe文件正在被下载,怎样写一个函数来检查该文件是否已经下载完成?
哦,对了我用的是linux系统

向文件提供方请求查询文件的大小,看看本地文件的大小,如果大小一样,可以认为下载完成了。

也可以有其他的判别方法,这个取决于文件下载时的协议的吧

如果你可以使用WINDOWS的API的话,你可以使用下面的函数:
OFSTRUCT ofs;
HFILE hFile = ::OpenFile("口是心非.MP3", &ofs, OF_SHARE_EXCLUSIVE);来判断一个文件是否被占用,如果能够顺利打开,那么表明这个文件没有被其他的程序占用,也就意味着下载完成。

------------------------------------- 补充1
不过用什么系统,总是存在以独占方式打开文件的函数的,你找找看,与上面的思路一样。

这个应该没办法

比如BT下载中,只有BT知道什么时候下载完了,其他程序是不知道的