网络目录上的_stat失败

时间:2018-01-05 13:34:04

标签: c windows winapi visual-studio-2008 lan

我的程序通过LAN将文件从Windows笔记本电脑复制到Windows桌面。我使用从资源管理器中拖放来提供源和目标。

来源是:C:\Paul

目的地为:\\SERVER\Paul

但是,_stat(dst,&dst_statbuf)失败,-1errno设置为ENOENT(找不到文件)。

请注意,来自Explorer drag&删除提供的路径是正确和存在的,在资源管理器中我可以看到目标目录,并可以打开文件,因此权限似乎没问题。

有没有人知道_stat失败的原因?

1 个答案:

答案 0 :(得分:4)

发现问题。

stat64.c(VC2008)中有一个奇怪的评论:

/* root dir. ('C:\') or UNC root dir. ('\\server\share\') */

然后调用未记录的API函数(第145行):

IsRootUNCName(path)

实际上,在服务器路径上添加反斜杠会使_stat正常工作。但请注意,在服务器路径上的常规目录上调用_stat也可以。所以它只会在共享的根目录上失败。

我认为这是一个错误(或者至少是Windows资源管理器和_stat之间的不一致)