FindFirstFile 返回3 找不到指定路径
windows7系统,第一步,用FindFirstFile和FindNextFile函数找到C:\program files\Windows NT目录下有三个文件,Accessories,TableTextService,和附件,三个都是目录;第二步,寻找C:\program files\Windows NT\附件 下的所有文件,却发生错误,GetLastError()返回3,找不到指定的路径,C:\program files\Windows NT\附件这个文件 是第一步用api找出来的,为什么会找不到路径呢。
在资源管理器中可以看见 “C:\program files\Windows NT\附件” 这个文件夹,是个隐藏文件,还是个快捷方式,但是双击打开却发生错误 “引用了一个不可用的位置” 望高手详解
[解决办法]
应该是快捷方式的话,就不能使用个函数?
[解决办法]
存在文件:
C:\program files\Windows NT\附件.lnk
而不存在文件夹:
C:\program files\Windows NT\附件
你要在这个不存在的文件夹内搜索,那不返回错误才怪。
至于你说的“引用了一个不可用的位置”跟这个返回错误就没关系。
[解决办法]
快捷方式是Shell的功能,也就是必须用Windows Shell函数才能解析。用Windows API是不行的。
所以这个快捷方式对于Windows API来说只是一个文件,文件是不存在之下的文件的。发生错误就是你把一个文件而不是目录设定为查找的目录了。
[解决办法]
之所以不让列它的目录,可能是微软考虑重解析点的性质,如果你打开Read权限,那么好奇的人去打开这个目录的时候,会看到Accessories的内容,不了解的人或者第三方磁盘清理工具可能会误以为是重复存放的文件,而删除里面的文件。那样的话,Accessories里的东西就被删除了。既然是Fix就把它保护起来,避免人们乱碰。NTFS的Junction类似Linux里的符号链接。
[解决办法]