DOBON.NET DOBON.NETプログラミング掲示板過去ログ

FDドライブの属性取得

環境/言語:[VB.NET]
分類:[.NET]

VB.NET初心者です。いつも参考にさせていただいています。

FDドライブに入っているフロッピーが書込み禁止(readonly)になっている場合に
エラー処理を行いたいと思っています。

.NET TIPSの「フォルダの属性の取得と変更」を参考に以下のようにしてみました。
(A:がFDドライブの場合)


Dim DirInfo As New DirectoryInfo("A:\")
If DirInfo.Attributes = FileAttributes.ReadOnly Then
   エラー処理
End If


結果は、
DirInfo.Attributesの値が「Directory」となっていて、うまく判定できません。
ほかのドライブ(例えばC:)だと、数値が返ってきているようなのですが、FDドライブ
の場合だけ結果が違うようです。

どのようにすればFDドライブ内のFDが読み取り専用かどうか判定できるのでしょうか。

よろしくお願いします。
たぶん書き込み禁止の判定はできないと思います。
私の場合はまずFDが挿入されている事を確認し、
それから実際にFDに書き込ロジックを入れて、
例外が発生すれば書込み禁止という判断をしました。

参考になれば。。
laughさん、お返事ありがとうございます。

> 私の場合はまずFDが挿入されている事を確認し、
> それから実際にFDに書き込ロジックを入れて、
> 例外が発生すれば書込み禁止という判断をしました。


やっぱりエラーをキャッチするしかないのでしょうか・・。

laughさんは、どの方法で例外処理を拾っていますか?

実は今まで(VB6.0で開発)は、On Error でキャッチ
していました。
.NETに移行するにあたり、TRY CATCHで処理するように変更
したいのですが、それだと例外をうまくキャッチできません。
(CATCHに入る前にVBが勝手に(?)ダイアログを出してしまう)
VB依存ではなくて、自分の記述するエラー処理に進ませたいのですが
どうしたらよいのでしょう。

ちなみにFDへのファイルの削除、書き込み処理はFileSystemObject
を使用しています。

掲題内容と少しずれてしまいますが、引き続きよろしくお願いします。
すみません。上記投稿の補足です。

上記の文章だと
・On ErrorからTry Catchに変更したことにより、例外が
キャッチできなくなった
ように感じられるかもしれません。

そうではなく、趣旨は
・VB6.0ではメッセージボックスが出てこなかったのに
VB.NETではエラー処理の前に独自のメッセージが出てしまう
ということが言いたかったのです。

分かり難い文章で申し訳ありません。
引き続きよろしくお願いいたします。

DOBON.NET | プログラミング道 | プログラミング掲示板