如何确保fopen()在未连接到网络时不会阻塞?

时间:2008-09-23 15:21:39

标签: winapi

我的win32 C ++应用程序经常检查通常驻留在网络共享中的文件[在我们的公司网络中]。但是,如果计算机未连接到网络,应用程序将冻结几分钟,用户通常必须结束该过程。如何在打开文件之前检查文件是否可访问?

检查是否存在任何网络连接可能不够好。用户断开连接的原因是用于不存在文件的测试网络。

3 个答案:

答案 0 :(得分:2)

将文件访问权限放入单独的帖子中?

答案 1 :(得分:2)

我认为一个帖子是你最好的选择。

似乎没有办法异步调用CreateFile API。打开文件句柄后,您可以对其执行异步I / O,但打开它的行为仍然是同步的。

您必须自己管理与线程的同步,因为只有您的应用知道何时需要fopen的结果,并且它可能仍然在此时阻止。

答案 2 :(得分:1)

在我看来,这个方法在一个单独的线程中是你最好的选择。

File.Exists