摘要: _stat()
函数表示当驱动器号映射到UNC路径时没有现有文件。
详细信息:在Windows系统上,有像
这样的UNC路径\\computer\sharename\disk_M\the_subdir\file.txt
并以这种方式映射:
net use M: \\computer\sharename\disk_M
然后可以file.txt
访问M:\the_subdir\file.txt
,我可以在编辑器中看到它的内容。
问题是我需要测试程序中存在的文件。我使用以下功能:
bool isfile(const std::string & path)
{
struct _stat stat;
if (_stat(path.c_str(), &stat))
return false; // the call returns -1 with errno ENOENT
return (stat.st_mode & _S_IFREG) != 0;
}
调试时,我发现_stat
调用FindFirstFile
函数:
/* Call Find Match File */
findhandle = FindFirstFile((_TSCHAR *)name, &findbuf);
if ( findhandle == INVALID_HANDLE_VALUE ) {
_TSCHAR * pBuf = NULL;
...它无法在此处找到文件。
有什么问题?我究竟做错了什么?如何增强对文件存在的检测? (代码在本地管理员进行驱动器映射的环境中运行,我无法更改配置。)