判断文件是否被占用的方法

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等文件无法更改。

原文地址:https://www.cnblogs.com/originalcandy/p/13992502.html