解决方法是利用CreateFile来判断这个文件是否被被其他进程以独占的方式占用了.
也可以用来判断 文件是否上传复制完毕,文件大小、操作时间的更改等。
代码:
#include <iostream>
using namespace std;
//#include <Windows.h>
#include <afx.h>
int main()
{
cout<<"文件被占用 test"<<endl;
CString szPath("D:\\ftp\\Trans\\1.wmv");
HANDLE Handle;
while(1)
{
Handle = CreateFile(szPath, GENERIC_READ,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
if(INVALID_HANDLE_VALUE == Handle)
{
cout<<"占用"<<endl;
}
else
{
break;
}
}
CloseHandle(Handle) ;//不关闭的话文件就被上面的createfile占用了
return 0;
}