我的程序通过局域网将文件从我的Windows笔记本电脑复制到我的Windows桌面。我使用资源管理器中的拖放来提供源和目标。
来源是:C:Paul
目的地是 :\SERVERPaul
但是,_stat(dst,&dst_statbuf)
失败,-1
和errno
设置为 ENOENT
(找不到文件(。
请注意,从资源管理器拖放中提供的路径是正确的并且存在,在资源管理器中我可以看到目标目录并可以打开文件,因此权限似乎没问题。
有谁知道为什么_stat
失败了?
发现问题。
在stat64.c
(VC2008(中有一个奇怪的评论:
/* root dir. ('C:') or UNC root dir. ('\servershare') */
后跟对未记录的 API 函数的调用(第 145 行(:
IsRootUNCName(path)
实际上,将反斜杠附加到服务器路径会使_stat
工作。但请注意,在服务器路径上的常规目录上调用_stat
也有效。因此,它只会在共享的根目录上失败。
我认为这是一个错误(或者至少是Windows资源管理器和_stat
之间的不一致