VB6でWebサーバー上のあるフォルダ以下にある
ファイルの一覧を取得したいのですが、可能でしょうか?
現在は、下記のようにして実現を試みています
Private Sub sFolderSearch2(ByVal myFolder As Object)
Dim Fso As New FileSystemObject
Dim myFile As File
Set Fso = CreateObject("Scripting.FileSystemObject")
For Each myFile In myFolder.Files
Debug.Print myFolder & "\" & myFile.Name
Next
With myFolder
If .SubFolders.Count > 0 Then
For Each mySubFolder In .SubFolders
Call sFolderSearch2(mySubFolder)
Next
End If
End With
Set myFile = Nothing
Set mySubFolder = Nothing
End Sub
という(どこかで見たことのあるような)コードを
Call sFolderSearch2(Fso.GetFolder("ここにパスを記述"))
というふうにして呼び出しています
パスのところにローカルフォルダを指定すると動作するのですが
WebサーバーのURLを("http://xxxxx/xxxxx/"のように)指定すると
"パスが違う"というメッセージが出てとまってしまいます
コードの間違いなどがありましたらご指摘願えませんでしょうか
もしくは、別の方法で実現できるなら、そのヒントをいただけるとありがたいです
よろしくお願いします
そりゃそうだろ
FileSystemObject は Windows ファイルシステムにしか対応してない
ので、Web サーバにあるファイルを操作する為には使えません。
当然 URL をパス名と認識しませんので“パスが違う”というエラー
が発生する訳です。
で Web サーバ上のファイル一覧を取得する方法は多分存在しないん
じゃないかと。
Web サーバ側の管理までしているのなら CGI とか使って抜け道作れ
なくもなさそうだけど、下手すると抜け道どころか大穴あけそうで
すしねー (^^;; 。
やっぱりそうですよね、HTTPでそれができると
セキュリティ的にも問題がありますよね
先述のソースを参考にしたサイトはわりと有名なところで、
「Webサーバーの」ファイルの一覧を列挙することが可能
と書かれていたので、その通りにやればできるのかなと思いました
ありがとうございました
>先述のソースを参考にしたサイトはわりと有名なところで、
>「Webサーバーの」ファイルの一覧を列挙することが可能
>と書かれていたので、その通りにやればできるのかなと思いました
んー、わりと有名らしい元サイトがどこだか全く見当もつかないので (^^;;
あくまでも個人的な推測なのですが 。
それってもしかすると Web サーバ側に FileSystemObject 使って
ファイル一覧を取得する ASP を作成する事でファイル一覧を列挙で
きるという事なのではないでしょうか。
FTPじゃねーの?
> で Web サーバ上のファイル一覧を取得する方法は多分
> 存在しないんじゃないかと。
『WebDAV対応』したWebサーバという限定条件下に限れば、
エクスプローラにWebフォルダとして割り当てておく事で、
自動的に PROPFIND や COPY 等の HTTPメソッドに変換されて
通常のファイルシステムのごとく取得できたような気が……。
もし、FileSystemObject ではできなかったとしても、少なくとも、
ADOでは操作できるはず。(MDAC SDKにサンプルあり)
ものすごく原始的な手を1つ(Webサーバの実装と設定に依存しますが)
・index.htmlの様なインデックスページを置かない
ツイート | ![]() |