tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル共有フォルダについて。
記事No11192
投稿日: 2008/01/21(Mon) 13:42
投稿者トリメ
ネットワークのことで解らないことが有りましたので、
皆さん教えて下さい。

ネットワーク上にA、Bのパソコンが有り、
AのCドライブにWork_Cフォルダを共有で作成します。
BからAを確認したところ\\A\Work_Cになりました。
この時BからAのCドライブにWork_Cがあることを確認する方法を教えて下さい。

[ツリー表示へ]
タイトルRe: 共有フォルダについて。
記事No11199
投稿日: 2008/01/22(Tue) 10:04
投稿者これ
> BからAを確認したところ\\A\Work_Cになりました。
> この時BからAのCドライブにWork_Cがあることを確認する方法を教えて下さい。

こんにちは。
FileSystemObject の FolderExists で
確認できますよ。

[ツリー表示へ]
タイトルRe^2: 共有フォルダについて。
記事No11201
投稿日: 2008/01/22(Tue) 11:06
投稿者
> こんにちは。
> FileSystemObject の FolderExists で
> 確認できますよ。

FileSystemObject の FolderExists って存在の有無しか判らないような…?

質問の言い方をすこし変えると、

 マシンAに設定されている共有「Work_C(\\A\Work_C\)」の
 実体がある物理ドライブをマシンB側から知りたい

ってことじゃないですかね?

私だったら的確な処理が見当つかないので
その共有フォルダに自身の情報(物理ドライブ上のフルパスとか色々)入れた
管理ファイルでも置いておいて、それを読み込むようにしますかね。

隠し共有(\\A\C$\)から検索していく方法も考えましたが
フォルダ名と共有名って違う場合もありますし、
逆に別のパスで同じ名前もありえるので特定は難しいとの結論に至りました。

[ツリー表示へ]
タイトルRe^3: 共有フォルダについて。
記事No11203
投稿日: 2008/01/22(Tue) 11:59
投稿者トリメ
皆さん考えて頂き有難うございます。

琴さんが補足して下さったことがやりたいのですが、
やはり難しいですかね。

[ツリー表示へ]
タイトルRe^3: 共有フォルダについて。
記事No11208
投稿日: 2008/01/22(Tue) 15:18
投稿者これ
> 質問の言い方をすこし変えると、
>
>  マシンAに設定されている共有「Work_C(\\A\Work_C\)」の
>  実体がある物理ドライブをマシンB側から知りたい
>
> ってことじゃないですかね?

ああ!そういうことでしたか〜。
もう魔界の仮面弁士さんのレスで進んでるようですが
琴さんフォローありがとうございました。

[ツリー表示へ]
タイトルRe: 共有フォルダについて。
記事No11204
投稿日: 2008/01/22(Tue) 12:57
投稿者魔界の仮面弁士
> この時BからAのCドライブにWork_Cがあることを確認する方法を教えて下さい。

http://www.vbstation.net/spec/S2_6.htm

[ツリー表示へ]
タイトルRe^2: 共有フォルダについて。
記事No11205
投稿日: 2008/01/22(Tue) 13:18
投稿者魔界の仮面弁士
> > この時BからAのCドライブにWork_Cがあることを確認する方法を教えて下さい。
>
> http://www.vbstation.net/spec/S2_6.htm

よく見ると、このサンプルは微妙に間違っているようなので注意してください。

処理手順は良いのですが、Unicode API に対して文字列を渡す際に、
 Declare Function NetShareGetInfo Lib "netapi32" (ByVal servername As String, …
のように String 変数に 再度 Unicode 変換にしてから渡しています。

これは正しくは、Unicode 文字列を示す Byte 配列の先頭要素を渡すべきです。


サンプルのままだと、偶然うまくいくこともありますが、失敗する可能性も高いです。

たとえば「てすと」という共有名であれば成功しても、
「ドキュメント」などの共有名は処理できません。


'これは文字化けせず、「てすと」に戻るのだが
Debug.Print StrConv(StrConv("てすと", vbUnicode), vbFromUnicode)

'これは壊れてしまう
Debug.Print StrConv(StrConv("ドキュメント", vbUnicode), vbFromUnicode)

[ツリー表示へ]
タイトルRe^2: 共有フォルダについて。
記事No11206
投稿日: 2008/01/22(Tue) 14:10
投稿者トリメ
解答有難うございます。
今いろいろ試しているんですが、
NetShareEnum(共有資源の列挙)がエラー(アクセスが拒否されました。)で
止まってしまいます。

AからBを直接見ることはできソフト上では見れない様なのですが、
なにか設定があるんですか?

[ツリー表示へ]
タイトルRe^3: 共有フォルダについて。
記事No11207
投稿日: 2008/01/22(Tue) 14:37
投稿者魔界の仮面弁士
> NetShareEnum(共有資源の列挙)がエラー(アクセスが拒否されました。)で
> 止まってしまいます。

おそらくは、アクセス権限が不足しているのだと思います。
(権限の無いユーザに列挙を許してしまったら、セキュリティ的に問題がありますしね)

試しに、現在接続に使っているユーザ アカウントに対して、
サーバに対する管理者権限を付加してみてください。それでも駄目でしょうか?

[ツリー表示へ]
タイトルRe^4: 共有フォルダについて。
記事No11209
投稿日: 2008/01/22(Tue) 18:17
投稿者トリメ
設定を合わせたら、うまくできました。
丁寧な対応有難うございました。

[ツリー表示へ]