Dirで「\\Hoge\Hoge」でエラー

解決


777  2006-05-14 02:02:33  No: 131411

言語はVisualBasic6.0です。

Dir関数を使い「\\Hoge\Hoge」のような共有されたフォルダへフォルダの確認をした場合でアクセス権などがなくアクセスできなかった場合に
Dir関数はエラーになってしまいますが何か回避策はないでしょうか?


ささ  2006-05-14 06:41:03  No: 131412

アクセス権がないならば
アクセス権をどうしたいのかにより
求める回避策が異なります

まずはどうするかを決めましょう


まる  2006-05-14 06:46:35  No: 131413

それが出来たら
会社の共有サーバの役職者の
ファイルが除き放題だな

不正アクセスを冗長するようなことは
このような掲示板にかけないっす


とも  2006-05-14 08:51:55  No: 131414

On Error でエラートラップすればいいだけの話のような


777  2006-05-15 06:14:50  No: 131415

>それが出来たら
>会社の共有サーバの役職者の
>ファイルが除き放題だな
>
>不正アクセスを冗長するようなことは
>このような掲示板にかけないっす
かんちがいじゃね?


もげ  2006-05-15 18:22:06  No: 131416

回避策って
(1)エラーを出さなくする
(2)アクセス権が無くてもアクセスできるようにする
(3)正当なアクセス権を持つユーザ名/パスワードを入力してログインしてからDir
(4)その他の意味
のどれかしら?  と、
ささ殿は補足を要望されてるのでしょう。

(1)  →とも殿
(2)  →まる殿(「かんちがいじゃね?」ってことでこれは無しと)
(3)ネットワークドライブ接続を行ってから「\\Hoge\Hoge」にアクセスする
http://madia.world.coocan.jp/vb/vb_bbs/200302_03020067.html


ささ  2006-05-15 22:30:05  No: 131417

>かんちがいじゃね?

勘違い云々よりも、そうゆうアクセス権が無いときに
あなたはどうしたいの?


777  2006-05-15 22:59:16  No: 131418

※途中の 777 は私ではありません。

別にアクセス権を与えるなどはしなくていいです。
ただ単にアクセス権がない場合などにDir関数を行うとエラーが発生します。
これを避ける為にDirを使ったエラー処理を行った関数を作ればいいのですが、
ほかに何か、ちゃんとしたやり方がないかと思ったので質問しました。
例えば、共有フォルダがちゃんとアクセスできて見えるかなどをAPI等で確認するなど。


とも  2006-05-16 10:17:01  No: 131419

Dirの前にチェックをしてもいいですが、ある意味、無意味です。
チェックして次のDirを実行するまでに、その共有フォルダが存在するか
どうかは厳密には分かりません。

結局エラートラップをしなければDirを使う前に何で調べようがDirを実行
したときにエラーが発生しないとはいいきれませんね。


じゃんぬねっと  URL  2006-05-18 00:23:41  No: 131420

Dim hFso As FileSystemObject
Set hFso = New FileSystemObject

If hFso.FolderExists("\\MachineName\Folder\") Then
    Call MsgBox("ありますね")
Else
    Call MsgBox("ないですね")
End If


じゃんぬねっと  URL  2006-05-18 00:27:22  No: 131421

あ、間違えて無言のまま送信してしまいました。(*_ _)
参照設定に Microsoft Scripting Runtime を加えてくださいね。
FileSystemObject を使って良いのであれば、上記で良いと思います。(確か)

  一応参考リンク : フォルダの存在を確認する
  http://jeanne.wankuma.com/tips/directory/exists.html

# 利点として、ネットワーク共有についての記述も追加しておいた方がいいかな?


777  2006-05-18 17:52:07  No: 131422

じゃんぬねっと様

ありがとうございます。解決です。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加