2012-03-31 58 views
0

我试图用C++编写遍历所有系统文件的代码。问题是有一些文件返回一个错误(2),这意味着没有找到这样的文件。虽然路径已被找到,但无法打开或获取该文件或文件夹上的指针!C++没有打开某些现有文件

dirp->search_handle = FindFirstFileA (dirp->patt, &dirp->find_data); 
if (dirp->search_handle == INVALID_HANDLE_VALUE) 
{ 
    cout << "Error(" << errno << ") opening " << dir<<" erroeno:"<<strerror(errno)<< endl<<endl; 
} 

问题不是由于缺少管理员权限而造成的,因为我是我的计算机上的管理员。那么可能会导致这个问题呢?

回答

1

还有其他原因,你可以没有权限

  • 你可能会试图穿越在您的域其他用户拥有的目录。作为管理员不会自动授予您对计算机上所有文件的访问权限。
  • 你传递的信息可能只是一个微不足道的错误。例如,您可能传递了“C:\ temp”,但没有正确地转义您的反斜杠,而是获取制表符。

我会提供有关你传递什么具体的详细信息,或者在msdn

+0

因为它是从另一种方法读取来自系统的路径来发送作为参数绝对正确的路径读了。,并自动调用上面的代码,并为其他用户拥有的文件,我的设备上没有其他用户,它只是管理员,,请提前感谢 – sana 2012-03-31 19:57:30

+0

您可以让它只是调用单一路径失败了?你可以导航到资源管理器中的确切路径吗?你可以在记事本中打开文件吗?希望检查其中的一个将提供额外的信息来帮助你追踪你的问题。 – fcrick 2012-03-31 20:31:45

+0

这是我不明白它,其中一些对我来说是不可见的,所以我不能在浏览器中导航它们,而另一部分它们是可见的我可以到达它们,但是当我双击“文件夹”时弹出消息说话:你没有权限访问这个文件夹,并提示我点击contine按钮以获得永久访问此文件夹的权限。 – sana 2012-04-01 00:06:17