VC++6.0 MFC WinXP sp2
ネットワークのフォルダを検索時、
たまにアクセスできない場合があります。
その情報を取得できるのでしょうか?
検索処理は下記の通りです。
誰か教えてください。
if ((dno = FindFirstFile(dir, &fil)) != INVALID_HANDLE_VALUE) { // 検索ハンドル
if ((fil.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
!= FILE_ATTRIBUTE_DIRECTORY) {
GetFileInfo( fil.cFileName, fil.dwFileAttributes);
}
while(FindNextFile(dno, &fil) != 0) {
if ((fil.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
!= FILE_ATTRIBUTE_DIRECTORY) {
GetFileInfo( fil.cFileName, fil.dwFileAttributes);
}
}
FindClose(dno);
}
ネットワーク越しの場合、色々な要因でありえる話だと思います。
例えば、その共有フォルダを保持しているのがサーバー系のOSでなければ、
セッション数の上限で引っかかって繋げないという事もあるでしょうし、
ネットワークの状態が悪ければ、それだけで繋がらないということもあると思います。
この辺の内容に関しては繋いで見なくてはわからないという事になると思います。
繋ぐ前に事前に知る手立てを私は知りません。
知る手立てがあるなら私も知りたいです。
一番簡単な方法は、ダミーファイルかなんかを置いといて
読めなかったら切れてるという判断でしょうか。
もっと正確にやるならSMBプロトコルを実装するか
パイプ等でNETコマンドを発行するとかかな。