言語はVisualBasic6.0です。
Dir関数を使い「\\Hoge\Hoge」のような共有されたフォルダへフォルダの確認をした場合でアクセス権などがなくアクセスできなかった場合に
Dir関数はエラーになってしまいますが何か回避策はないでしょうか?
アクセス権がないならば
アクセス権をどうしたいのかにより
求める回避策が異なります
まずはどうするかを決めましょう
それが出来たら
会社の共有サーバの役職者の
ファイルが除き放題だな
不正アクセスを冗長するようなことは
このような掲示板にかけないっす
On Error でエラートラップすればいいだけの話のような
>それが出来たら
>会社の共有サーバの役職者の
>ファイルが除き放題だな
>
>不正アクセスを冗長するようなことは
>このような掲示板にかけないっす
かんちがいじゃね?
回避策って
(1)エラーを出さなくする
(2)アクセス権が無くてもアクセスできるようにする
(3)正当なアクセス権を持つユーザ名/パスワードを入力してログインしてからDir
(4)その他の意味
のどれかしら? と、
ささ殿は補足を要望されてるのでしょう。
(1) →とも殿
(2) →まる殿(「かんちがいじゃね?」ってことでこれは無しと)
(3)ネットワークドライブ接続を行ってから「\\Hoge\Hoge」にアクセスする
http://madia.world.coocan.jp/vb/vb_bbs/200302_03020067.html
>かんちがいじゃね?
勘違い云々よりも、そうゆうアクセス権が無いときに
あなたはどうしたいの?
※途中の 777 は私ではありません。
別にアクセス権を与えるなどはしなくていいです。
ただ単にアクセス権がない場合などにDir関数を行うとエラーが発生します。
これを避ける為にDirを使ったエラー処理を行った関数を作ればいいのですが、
ほかに何か、ちゃんとしたやり方がないかと思ったので質問しました。
例えば、共有フォルダがちゃんとアクセスできて見えるかなどをAPI等で確認するなど。
Dirの前にチェックをしてもいいですが、ある意味、無意味です。
チェックして次のDirを実行するまでに、その共有フォルダが存在するか
どうかは厳密には分かりません。
結局エラートラップをしなければDirを使う前に何で調べようがDirを実行
したときにエラーが発生しないとはいいきれませんね。
Dim hFso As FileSystemObject
Set hFso = New FileSystemObject
If hFso.FolderExists("\\MachineName\Folder\") Then
Call MsgBox("ありますね")
Else
Call MsgBox("ないですね")
End If
あ、間違えて無言のまま送信してしまいました。(*_ _)
参照設定に Microsoft Scripting Runtime を加えてくださいね。
FileSystemObject を使って良いのであれば、上記で良いと思います。(確か)
一応参考リンク : フォルダの存在を確認する
http://jeanne.wankuma.com/tips/directory/exists.html
# 利点として、ネットワーク共有についての記述も追加しておいた方がいいかな?
じゃんぬねっと様
ありがとうございます。解決です。
ツイート | ![]() |