3

FindFirstFile関数が原因で、「ドライブにディスクがありません。ドライブにディスクを挿入してください」というエラーが発生します。このエラーの原因は、USBスティックにSDカードがなく、空であるためです。私の問題は、特定のディレクトリについてすべてのドライブをスキャンする必要があり、ドライブが空かどうかを区別できないことです。これどうやってするの?

私はWindows用のアプリケーションを開発しており、開発にはMFCを使用しています。

どんな助けでも大歓迎です。

Farooq-

4

1 に答える 1

10

少し推測しますが、このダイアログの表示を抑制するには、フラグSetErrorMode()の受け渡しを呼び出す必要があると思います。SEM_FAILCRITICALERRORS代わりFindFirstFile()に障害コードが返され、列挙内の次のドライブに進むことができます。

編集:Windows 7以降の場合は、SetThreadErrorMode()代わりに検討してください。それはモードの効果を制限します。また、できるだけ早く元のモードに戻すことを忘れないでください。

于 2011-08-29T16:51:04.937 に答える