"\\Server\Folder1\"
の形でアクセスする場合、Windowsのログオンユーザに依存します。
エクスプローラ等の場合は、ログオンユーザでアクセスできなかった場合は、
ユーザ・パスワードを入力するダイアログが表示されます。
・ログオンユーザが共有ディレクトリのユーザとして許可されている。
・ログオンユーザ+パスワードがアクセス先のユーザと同じである。
・エクスプローラ等でアクセス先の認証が完了している。
以上の条件のいずれかが満たされている場合に、\\~でアクセスできます。
ですので、Windowsによる認証ができていない状態だと、
先の回答のコードではディレクトリを認識できません。
解決策としては、
アクセス先の共有ディレクトリの許可するユーザにログオンユーザを登録する。
もしくは、
ネットワークドライブに共有ディレクトリを指定して、
O:\で"\\Server\Folder1\"にアクセスできるように設定しておく。
のが簡単だと思います。
あまりオススメできないのですが、
下記のコードで一応、ユーザ・パスを指定して共有ディレクトリにアクセスできます。
VBScriptでWMIをいじっていたときのコードを流用しているので、
あまり信頼性がありません。
(O:は使用されていないドライブ名とする)
Dim WshNetwork As Object = CreateObject("WScript.Network") Try WshNetwork.MapNetworkDrive("O:", "\\Server\Folder1\", , "User", "Password") Catch ex As Exception MessageBox.Show("接続エラー") Return End Try '指定フォルダ存在チェック If System.IO.Directory.Exists("O:\") Then MessageBox.Show("存在します。") Else MessageBox.Show("存在しません。") End If Try WshNetwork.RemoveNetworkDrive("O:") Catch ex As Exception MessageBox.Show("切断エラー") Return End Try
私も知識不足なので、もしかしたら、
.NET FrameworkやWin32APIで上記と同等のことが
できるかもしれないです。
下記のコードで指定フォルダが存在するかチェックできます。
ネットワークフォルダの場合、多少時間がかかります。
Dim dirName As String dirName = "\\Server\Folder1\" '指定フォルダ存在チェック If System.IO.Directory.Exists(dirName) Then MessageBox.Show(dirName & "は存在します。") Else MessageBox.Show(dirName & "は存在しません。") End If
ありがとうございます。しかし、何度トライしても存在しないという結果になってしまいます。「マイ ネットワーク」には表示されているのですが…。
"\\Server\Folder1\"
の形でアクセスする場合、Windowsのログオンユーザに依存します。
エクスプローラ等の場合は、ログオンユーザでアクセスできなかった場合は、
ユーザ・パスワードを入力するダイアログが表示されます。
・ログオンユーザが共有ディレクトリのユーザとして許可されている。
・ログオンユーザ+パスワードがアクセス先のユーザと同じである。
・エクスプローラ等でアクセス先の認証が完了している。
以上の条件のいずれかが満たされている場合に、\\~でアクセスできます。
ですので、Windowsによる認証ができていない状態だと、
先の回答のコードではディレクトリを認識できません。
解決策としては、
アクセス先の共有ディレクトリの許可するユーザにログオンユーザを登録する。
もしくは、
ネットワークドライブに共有ディレクトリを指定して、
O:\で"\\Server\Folder1\"にアクセスできるように設定しておく。
のが簡単だと思います。
あまりオススメできないのですが、
下記のコードで一応、ユーザ・パスを指定して共有ディレクトリにアクセスできます。
VBScriptでWMIをいじっていたときのコードを流用しているので、
あまり信頼性がありません。
(O:は使用されていないドライブ名とする)
Dim WshNetwork As Object = CreateObject("WScript.Network") Try WshNetwork.MapNetworkDrive("O:", "\\Server\Folder1\", , "User", "Password") Catch ex As Exception MessageBox.Show("接続エラー") Return End Try '指定フォルダ存在チェック If System.IO.Directory.Exists("O:\") Then MessageBox.Show("存在します。") Else MessageBox.Show("存在しません。") End If Try WshNetwork.RemoveNetworkDrive("O:") Catch ex As Exception MessageBox.Show("切断エラー") Return End Try
私も知識不足なので、もしかしたら、
.NET FrameworkやWin32APIで上記と同等のことが
できるかもしれないです。
ありがとうございます。申し上げにくいのですが、何と、フォルダ名を間違って記述しておりました…。どうぞ今後とも阿呆にお付き合いください。
ありがとうございます。申し上げにくいのですが、何と、フォルダ名を間違って記述しておりました…。どうぞ今後とも阿呆にお付き合いください。