在我的程序中,需要在后台从ftp上下载一个PNG格式的图,用 于预览。如果第一次把数据下载下来,假设默认以temp.png名称存在C盘,问题出现了:若有多个数据需要预览,我的程序中从ftp上下载数据的代码又 不能覆盖本地已有的文件,且即使能覆盖C;/temp.png这个文件,但此时我正使用它,亦无法重写此文件。
解决办法是,默认生成两个临时文件:C:/temp1.png, C:/temp2.png, 每次先判断temp1.png是否正被使用,如果没被使用,则先从本地删除掉它,再从ftp上下载一个图像文件,以temp1.png命名存在C盘;如果 temp1.png正被使用,那么temp2肯定没被使用,这时先从本地删除掉temp2.png,再从ftp上下载一个图像文件,以temp2.png 命名存在C盘. 这样,我就可以解决预览多个数据的问题了。
代码如下:
其中,判断一个文件是否正被某一进程占用的函数为: