0

すべてのディレクトリ、HDD ツリーを一覧表示する C++ アプリケーションがあります。これらのディレクトリにアクセスして中身を確認することもできますが、コンピューター上の別のユーザーのディレクトリを開こうとすると問題が発生します。私はそこにアクセスすることができず、Windows XP/Vista/7 の場合と同じように表示されるはずです。代わりに、エラーが発生してアプリが終了します。

などを使用してこれを処理するにはどうすればよいFILE_ATTRIBUTE_ですか?ユーザーがディレクトリをクリックしても、そのディレクトリにアクセスできない場合、アプリがクラッシュしませんか? アクセスが拒否されたことを彼に伝えるだけです。

私のアプリはVS 2010で作られています。

4

2 に答える 2

0

あなたがする必要があるのは、FindFirstFile(またはディレクトリ内を調べるために使用する関数)からの戻り値をチェックし、それ以上処理する代わりにユーザーに警告を与えることだけです.

クラッシュは、関数が失敗した後に結果バッファーを使用しようとしたことが原因である可能性があります。関数が失敗した場合、結果バッファーの内容を調べたり、他の関数 ( などFindNextFile) に渡したりしないでください。代わりに、完全なゴミであると想定してください。

于 2013-07-14T21:11:12.803 に答える