2012-03-31 16 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

+0

あなたはそれを失敗していますか?エクスプローラでその正確なパスに移動できますか?メモ帳でファイルを開くことはできますか?うまくいけば、これらのいずれかをチェックすることで、問題を追跡するのに役立つ追加情報が得られます。 – fcrick

+0

これは私が理解できなかったことです。そのうちのいくつかは私には見えないので、エクスプローラでそれらをナビゲートすることができます。そして、他の部分は私がそれらに到達することができます。しかし、 "folder"あなたはこのフォルダにアクセスするための権限を持っていません。このフォルダにアクセスする永続的なアクセス権を持っているコンティニューボタンをクリックするよう促します。 – sana

関連する問題