• ベストアンサー

Aドライブのエラーを回避したいのですが、

何度もすみません。 コンボボックスにドライブ一覧を取得しました。 そのコンボボックスを選択すると、 リストボックス1に、フォルダのパス名が表示されます。 リストボックス2に、ファイル名が表示されます。 CドライブやDドライブはいいのですが、 Aドライブのリムーバルドライブを選択すると エラーが表示されます。 エラーが表示される前に何とかしたいと思うのですが、 どうすればいいのかわかりません。 または、エラーを無視するでもいいです。 よろしくお願いします。 以下が、ドライブを選択した時のコンボボックスの関数です。 VisualStudio.NET WindowsXP MFC です。 void CFileViewView::OnCbnCloseupCombo1() { CString listtxt; comb.GetWindowText(listtxt); for(int i=list1.GetCount()-1;i>-1;i--) { list1.DeleteString(i); } for(int i=list2.GetCount()-1;i>-1;i--) { list2.DeleteString(i); } CFileFind find; listtxt=listtxt+"\\*";//? 「A:\*」などを指定する find.FindFile(listtxt,0); bool work=true; CString findtxt; while(work) { AfxMessageBox("OK");//表示される。 work=find.FindNextFile(); //? A:\などを指定する AfxMessageBox("OK2"); //表示されない。 if(find.IsDirectory() && !find.IsSystem() && !find.IsHidden()) { list1.AddString(find.GetFilePath()); } if(find.IsArchived() && !find.IsSystem() && !find.IsHidden()) { list2.AddString(find.GetFileName()); } } }

質問者が選んだベストアンサー

  • ベストアンサー
  • mcWalker
  • ベストアンサー率69% (27/39)
回答No.1

挙げておられるMFCのソースの解釈はちょっと見では分かりませんが、 多分、メディアが入っていないせいではないですか。 FDD, MO, CD-ROM などの removable は、参照しようとして メディアが入っていないと「準備ができていません。」と出ると思います。 で、これをテスト方法ですが、_chdrive() があります。 使い方は、MSDN のサンプルを見てください。 また、vector にドライブ処理のソース rwfd013.lzh があります。 BPB を扱いますが、上記のエラーを検出しています。 他にも、検出方法はあるかもしれません。

thulala
質問者

お礼

ありがとうございました。 できました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>Aドライブのリムーバルドライブを選択すると >エラーが表示されます。 >エラーが表示される前に何とかしたいと思うのですが、 >どうすればいいのかわかりません。 >または、エラーを無視するでもいいです。 SetErrorMode()をSEM_FAILCRITICALERRORSを指定して呼び出す。 http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_seterrormode.htm

参考URL:
http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_seterrormode.htm
thulala
質問者

お礼

ありがとうございました。 できました。

すると、全ての回答が全文表示されます。

関連するQ&A