サーバ上にあるファイルの一覧を出したい
だが、指定ファイルが存在しなかったときが問題だ。
「Not found」
ってメッセージはREST APIでRedmineのチケットに書き込めるようになった。
一歩進んで、
「今あるのはこれらのファイルですよ?」
ってのもチケット上に出したい。
が、一筋縄ではない
WinSCP .NET AssemblyサイトのJScriptサンプル
http://winscp.net/eng/docs/library_session_listdirectory#example
だと、lsの結果をnew Enumerator()でめでたく列挙子化できている。
だがEnumeratorはnode.jsにはない。
http://msdn.microsoft.com/ja-jp/library/ie/6ch9zb09(v=vs.94).aspx
node.jsには列挙子みたいなものがないようだ。
あったとしても、JScriptと同じ方法でCOMコレクションを扱える保証はない。
ArrayとかObjectでやってみたけどダメ。
いろいろ頑張ってみた。
けれどもできない。
というか、無理ぽ
結論としては、node.js用win32oleでCOMコレクション対応が未実装なのが原因だった。
作者さんが
https://github.com/idobatter/node-win32ole
「can not handle some COM VARIANT types, array etc.」
と言っちゃってる。
だから間違いない。
発想の転換
まあ、WebDAVのlsだったら単に普通にHTTPで
http://username:password@example.com/path/
からGETしたものをCheerioでほのぼのスクレイプすればいいような気もしますが。
https://github.com/cheeriojs/cheerio
0 件のコメント:
コメントを投稿