VC判断一个指定的文件是否打开,若已经打开则关闭该文件。怎么做呀?小弟跪谢

这个文件是.xls文件
2024年11月23日 11:21
有2个网友回答
网友(1):

看你是怎样打开的。
如果用 fopen 打开, 则检查 FILE, 如果不是NULL, 就是打开的。
例如:
FILE *fin;
fin = fopen("a.txt","r");
if (fin != NULL){
fclose(fin);
printf("-close-");
};

如果你用CFile class.
可以检查成员变量 public UINT m_hFile 句柄,如果它不等于 CFile::hFileNull 估计是打开的。你进一步可以用 CFile::GetStatus(..) 取回一个状态结构(CFileStatus status;)
,检查里面各项,判断是否打开的。

网友(2):

有一种比较好的方式是这样,比如
CFile f;
if(f.Open("...",......))
{
//文件操作代码

f.Close();
}

这样的好处就是,打开了会关闭,没有打开就不用关闭了。

其他FILE等也可以用这种方式。