投稿日 | : 2003/06/20(Fri) 02:42 |
投稿者 | : 魔界の仮面弁士 |
Eメール | : |
URL | : |
タイトル | : Re: Webフォルダへコピーしたい |
> ローカルで作成したファイルを社内のイントラネット(Webフォルダ)にエクスプローラで
> コピーしています。これをVBで自動化にしたいのですが、どなたかやり方を知っていますか?
Webフォルダ(WebDAV)へのアクセスには、幾つかの方法があります。
例えば、IE6 + Windows XP / Windows 2003などでは、
VB標準のステートメント等で、そのまま扱える可能性があります。
(Webサーバ側のサポート状況にもよりますが)
例えば、「http://server/folder」というWebフォルダがあった場合には、
FileCopy "C:\Project1.DLL", "\\server\folder\ProjectSample.DLL"
という構文でファイルをコピーさせたり、あるいは、
Open "\\server\folder\file.txt" For Output As #1
のような記述にて、ファイルを作成したりする事ができたりします。
ただし、この方法の場合は、http://〜やhttps://〜〜の構文のままでは
アクセスできないという点に注意が必要ですけれどね。
# なおこの時には、「http://server/folder/TEST.TXT」というURLに対して
# (WebDAVの)PROPFINDメソッドやPUTメソッドなどが自動的に発行されています。
上記の手法でアクセスできないような環境の場合は、ADOを使って、
Webフォルダをデータベースのように利用する事もできます。
特にADO 2.5以上からは、RecordオブジェクトやStreamオブジェクトを使って、
ファイルの内容までも、ADOだけで読み書きできるようになっています。
ADOで処理する場合は、OLE DB Providerとして、
・Microsoft OLE DB Provider for Internet Publishing (Provider=MSDAIPP.DSO)
・Microsoft OLE DB Provider for Exchange Server (Provider=ExOLEDB.DataSource)
などが利用できます。例えば前者であれば、
http://www.microsoft.com/japan/developer/library/ado260/mdhowinternetpublishingscenario.htm
などが参考になるでしょう。後者は、
http://www.zdnet.co.jp/help/howto/win/win2000/0010exchange/02/19.html
などを参考にしてください。(細かい仕様に関しては、SDKで確認してください)
あるいは、ServerXMLHTTPオブジェクトなどを利用して、直接 WebDAV による
低レベル通信を行う事もできます。この手法の場合は、下記が参考になるかと思います。
http://www.microsoft.com/japan/developer/workshop/xml/articles/xmlandwebdav.asp
http://www.ki.rim.or.jp/~kuro/WebDAV/