判断文件是否被占用的方法
1. 从进程着手,获取进程指向的文件;
2. 使用CFile类,
if (_access(fileName.ConvertToChar(), 0) == 0)
{
CFile fp;
if (fp.Open(fileName,CFile::shareDenyWrite| CFile::shareDenyRead))
{
fp.Close();
}
}
3. 使用rename函数,一个文件被占用的话,肯定没办法被更改名称。两次使用rename,先改成自定义文件名,再改为原名称,都成功的话说明文件没有被占用。
20200221更新
对于文本文件,rename在文件已经打开的情况下依然可以更改名称,对于如Excel等文件无法更改。