環境:WindowsXP VB6.0(SP6)
イントラネット内のサーバのフォルダ構成を取得しようとしています。
自分なりに次のように取り組みました。
まず、ユーザのパソコンのディレクトリ構造を取得、表示しました。
ネットワークドライブとして、サーバを追加して取得しようとしましたが、その場合、
s:\〜
というパス名になります。
こういうパス名ではなく、
\\サーバ名\〜
というパス名にしたいと考えています。
ですので、先の方法では私の望むようにはいきませんでした。
私の頭では他に方法が思いつきません・・・。
何かよい方法をご存じの方、教えて下さい。お願いします。
>\\サーバ名\〜
>というパス名にしたいと考えています。
すれば良いんじゃない?(^^;)実際、何を使ってディレクトリを
取得しようとしているのか書かれていないけど、フォルダの
参照権限とかちゃんと持ってるなら
Debug.Print Dir("\\サーバ名\D\フォルダ名", vbDirectory)
とかでも有効な気がしますが???
>特攻隊長まるるうさん
書き込みありがとうございます。
>実際、何を使ってディレクトリを
>取得しようとしているのか書かれていないけど
大変失礼致しました。
ディレクトリ構造はツリービューを使って表示しております。
GetLogicalDriveStringsで、ドライブを取得しており、
SHGetFileInfoで、ファイルを取得しています。
ツリービューで選択したパス名は、ラベルに表示しております。
>フォルダの参照権限とかちゃんと持ってるなら
フォルダの参照権限というのもあるのですね。無知ですいません。
マイネットワークからサーバの中を見にいけるので、
多分参照権限はあるのではないかと思います・・・。
>Debug.Print Dir("\\サーバ名\D\フォルダ名", vbDirectory)
特攻隊長まるるうさんの助言をもとに、
いろいろ取り組みましたが、思うようにはいきません・・・。
取り組んだものの一例------------------------------
strPath As String '取得したパス名を入れる変数
strPath = "S:\〜\あいうえお" 'ツリービューで選択したネットワークフォルダのパス名を入れる
Label1.Caption = Dir(strPath, vbDirectory)
結果
label1に「あいうえお」と表示
label1には「\\サーバ名\〜\あいうえお」と表示したいので
このコードは失敗・・・。
------------------------------------------
もしかしたら、特攻隊長まるるうさんの思惑と
かなりずれていたのかもしれません・・・。
だとしたら本当に申し訳ありません・・・。
えーと。質問の文章が全く見当外れだね(^^;)
確認ですが、質問は、
『ローカルコンピュータのネットワークドライブに追加された
フォルダパス(s:\〜)から、実際に割り当てられているサーバ上の
フォルダパス(\\サーバ名\〜)を求める方法』
ですか?それとも
『ローカルコンピュータからサーバ上のパス(\\サーバ名\〜)
を指定して、そのフォルダ以下のフォルダを列挙する方法』
ですか?
それとも両方ですか?
それとも微妙に違う別の質問ですか?
>特攻隊長まるるうさん
質問内容がおかしくて本当に申し訳ありません・・・!
\\サーバ名\〜
というパス名が取得できれば、どちらの方法でも構いません。
パス名の取得に重点をおいておりましたので、
いろんな方法で試していたのです・・・。
>\\サーバ名\〜
>というパス名が取得できれば、どちらの方法でも構いません。
むー。どちらの方法でも…ってゆわれても、2つの方法の
目的が違うんですが?(T△T)
…というかね。ネットワークドライブを設定するというのも
決定事項じゃないって事だよね?結局どこでサーバ名を
指定するのか決めてもらえないかな?ネットワークドライブ
に割り当てているなら、例えば
[VB6.0]
Private Sub Command1_Click()
Dim fso As New FileSystemObject, fldr As Folder
Set fldr = fso.GetFolder("s:")
Debug.Print (fldr.Drive.ShareName)
End Sub
で『\\サーバ名\〜』が得られると思います。他にも方法は
たくさんありそう。
プログラムで『\\サーバ名\〜』って文字列で持ってて
そのフォルダ以下の検索してるなら、その文字列をその
まま使えばいいだけなので回答は特にありません。
>特攻隊長まるるうさん
いろいろ困惑させてしまい、本当に申し訳ありませんでした!\(ToT)/
私が1番取得したかったものは、
サーバ内にあるファイルのパス名の取得です。
そこで、マイネットワークのように、
ネットワーク全体を表示し、そこからサーバを選択、
選択したサーバ内のフォルダ構成を表示し、
そこからファイルを選択し、パス名も取得したいなと
考えました。
ところが、私の力が及ばず、そこまではできないかと諦めたのです・・・。
それで、真の目的であるパス名の取得に重点をおいて
取り組んでおりました。
特攻隊長まるるうさんが教えて下さった、
ネットワークドライブに割り当てられているサーバの
パス名を取得する方法を試してみたところ、
「\\サーバ名\〜」のパス名を取得でき、
プログラムとしては問題ないので、よしとしました。
このような方法があるのですね。
知らないことばかりで、恐縮してしまいます・・・。
本当にありがとうございました。
こんな私のおかしな質問に一生懸命答えて下さり、
本当に感謝しています。
いずれ、私にもっと力がついたところで、
マイネットワークのような表示ができるプログラムにも
挑戦してみたいと思います。
本当にありがとうございました。
ツイート | ![]() |