CarotDAV

Last modified on Jul 09 2010.

Windows用WebDAVクライアントです。 おまけでFTPやSkyDriveもできます。

概要

VistaのWebDAV実装があまりにひどくて使い物にならないので、 VBや.Netの勉強も兼ねて適当に作ったシングルペインのWebDAVクライアントです。

いまさら、という感じですが、いまだにまともなのがないので仕方ありません。

なるべく余計な事はしないように作っています。

調べた範囲では、最もきちんと多言語に対応しています。 調べた範囲では、最もたくさんの認証方式に対応しています。

FTP/FTPSにも対応しています。

SkyDriveにも対応しています。

GoogleDocs、IMAPには対応しきれていません。

動作イメージ

動作イメージ

動作環境

対応規格等

ダウンロード

  1. Ver. 1.7.0
  2. Ver. 1.6.14
  3. Ver. 1.6.13
  4. Ver. 1.6.12
  5. Ver. 1.5.5

アルファ版もベータ版も安定版も区別してません。 お好きなのをどうぞ。 「自分で必要があって使う=デバッグ」なので、 版によってはひどいバグを内包しています。 アップデートして数時間後に再アップデート、とかもよくあります。

古い版が欲しい方はURIを直接指定してダウンロードしてください。

ライセンス・利用料・寄付

ライセンス

このソフトは無料で利用して構いません。 今後有料化の予定もありません。 ご自由にお使いください。

2次配布、商用利用、改造、リバースエンジニアリングなどもご自由にどうぞ。 ソースコードはコメントが恥ずかしいので置いていませんが、 欲しい人にはお渡しできます。

寄付

何人かの意識の高い方から要請がありましたので、 PayPalによる寄付を受け付けることにいたしました。

寄付は「このサイトに対する支援」として頂きます。 サーバー維持費、証明書取得・維持費、開発環境構築・維持費に用います。 明細を公表する予定はありません。 必要を上回った場合は公益機関に寄付し、その旨をサイト内で報告します。 寄付により得られる特典はありません。

寄付は以下のボタンから行えます。 なにか特記事項があれば、通信欄に記載ください。

説明

VistaのWebDAV実装があまりにひどくて使い物にならないし、 WindowsのDAVクライアントが見当たらないので仕方なく作成しました。 もっといいクライアントがあったら教えてください。 もしくは、もっといいクライアントを作ってください。

残念ながらWindows7でもWebDAVはダメダメでした。 もっといい規格を作って下さい。

.Net Frameworkを使って適当に作ってます。 なので痒いところに手が届きません。 痒いところを掻こうと頑張るとバグの嵐です。

DAV class 1および3で動作します。 きちんとLOCKすると、エラーを返すサーバーが多いため、 LOCK/UNLOCKメソッドはリクエストしません。

リソースの作成日時、更新日時は本来DAVでは更新できません。 「urn:schemas-microsoft-com:Win32CreationDate」、「Win32LastModified」プロパティを 変わりに用いています。 この動作はWindowsのwebフォルダ互換の動作です。

MS-Author-Viaの類の非標準な仕様は、 なるべく使わない、依存しない、という方針にしています (使いたくてもドキュメントがないので使えないんだが)。 困った場合のみ実装します。できればオプションで。 設定を全部はずした状態が最もRFC準拠、もしくはシンプルな振る舞いになるように作っています。

調べた範囲内では、他のどのクライアントよりもきちんと多言語対応しています。 ですが、エンコードの自動判定はありません。 自分で設定する必要があります。

調べた範囲内では、他のどのクライアントよりもたくさんの認証方式に対応しています。 ですが実際に使うのはBasic,Digest,SPNEGOくらいです。

WebDAVとFTPと別のクライアントを使うのは面倒だと思ったのでFTP/FTPSもできるようにしてみました。 ついでにSkyDriveにも適当に対応してみました。 どうせならGoogleDocsにも対応してみようとしましたが、アップロードAPIが有料なことに気づいて投げ出しました。

既知の問題と今後の改良予定

レジューム機能ぐらいあってもいい気がする。→あきらめました

ダウンロードは対応しているサーバーが多い。 アップロードは対応してないサーバーが多い。 インターフェースを作るのがめんどくさい。 同じファイル名があったら聞けばいいのか? (その場合ロックしないとやばい)

LOCK/UNLOCKを発行したい。→あきらめました

PUTしてPROPPATCHするのに、いちいちLOCKすべきか?

HTTP Mutual authenticationに対応したい。

公開されてるモジュールが私にはコンパイルできない。 なのでMutualAuthに対応したDAVサーバーが作れない。 なので実装しても動作確認ができない。 なので対応できない。

リダイレクトされたフォルダへアップロードするといろいろ問題が。

リダイレクトされたフォルダへアップロードするときにたぶんURIを間違えます。

ダウンロードとアップロードをちょっと変えたいなぁ

ダウンロード時にエラーが起きても止まらないようにしたい。 エラーとか正常とか、送受信の結果の一覧が欲しい。

クライアント証明書

サーバーがクライアント証明書を要求しているのかどうか、判定する術が見つかりません。 なので、必要になったら証明書を選択する、というのができません。 あきらめて全てのクライアント証明書を送っていますが、 これは明らかにセキュリティ上のリスクです。

プロキシ関連

一応実装した。 動作確認したくてもプロキシを使ってるサーバーが手元に無い。 正常に動作するという報告が1件。 正常に動作しないという報告が1件。 FTPのプロキシにいたっては1回も動かしてみていません。

FTP関連

多種多様なサーバーがあるのでどうしていいのかわかりません。

SkyDrive関連

ルートフォルダがDAVで公開されていないので、ルートフォルダ直下にフォルダを作成できません。 My Documents以外なら、移動やリネーム、削除は出来ます。 ファイルの名称によってはSkyDrive側の制限でアップロードできません。 その他いろいろ禁止されてたりして、いろいろできません。

よくある質問とよくある回答

なにこれ?

WebDAVサーバーからファイルをダウンロードしたりアップロードしたりするソフトです。 WindowsのWebフォルダのようなものです。

なんでWebフォルダを使わないの?

Webフォルダがうまく動かないからです。

なんで2ペインじゃないの?

GUIオブジェクトの数が増えると管理が大変になるからです。

なんでファイルシステムとして実装しなかったの?

いつか、違うソフトとして作ります。 これはシンプルなクライアントということで。

重すぎ

コードはあんま綺麗じゃないけど、ひどく醜いことはしてないつもり。 .Netだから初回起動はかなり重いかな。

設定項目が多すぎ

私もそう思います。

設定項目の説明は無いの?

今のところ私には必要ないので。

SSL/TLSがうまく動かないよ

CarotDAVはOSの証明書ストアを使って認証してます。 独自CAが発行したサーバー証明書を使う場合は、 クライアントPCの証明書ストアに独自CAの証明書を登録しないと警告が出ます。

仮想ディレクトリ・シンボリックリンクが表示されない!

CarotDAVはサーバーから返されたものをそのまま表示します。 表示されない場合はサーバーが送っていません。 無いものはどうにもできないので、サーバーの設定をみなおしましょう。 仮想ディレクトリやシンボリックリンクを返せないサーバーもあるようです。

IISの設定を教えて!

2003ならWebDAVの許可(XP、2000ならそのまま)、 ルートフォルダの読み取り、書き込み、参照を許可。 ISAPIを全部無効にして、 匿名アクセスを許可すれば大抵はつながります。 世界中から、誰にでも。

大抵はまるのは拡張子のマッピングです。 拡張子とアプリケーションのマッピングがあると、 ファイルがGETされる前にアプリケーションで処理されてしまうので、 WebDAV用フォルダでは無効にしておきましょう。

Apacheの設定を教えて!

dav_moduleとdav_fs_module(必要なら各種authモジュール)のLoadModuleを忘れなければ 大抵は動くのでは?

04WebServerでエラーが出ます。

04WebServerのDAV実装はRFCに準拠していません。また、いろいろな所に不具合があります。 [Setting]→[Advanced]→[Don't Update Property]にチェックを入れれば、ある程度は動きますが、 更新日時などがおかしくなります。 リダイレクトもうまく動きません。 フォルダとファイルの判定も間違えます。 RFC準拠したままの対応はできなかったので、あきらめました。 うまく動いたらラッキーだと思ってください。

FTPできるの?

WebDAVクライアントをFTPクライアントでサーバーに上げるのは なんかおかしいなぁと感じたのでFTP/FTPSも対応してみました。 SFTPはできません。

SkyDriveできるの?

WebDAVアクセスできるようなので、Passport認証に対応するついでに対応してみました。 が、かなり限定されたDAV実装で、いろいろ問題があります。

削除できないファイルは一度「^_TrashBox」というフォルダに移して、フォルダごと削除しています。 「Use Folder to Delete Undeletable Files」を無効にするとこの振る舞いを無効にすることができます。

サイズの大きいファイルは自動で分割します。 ファイル一覧では一つのファイルに見え、ダウンロード時も自動で結合します。 実際には末尾に「^_1」「^_2」のような文字列をつけたファイルに分割してアップロードしています。 「Auto Split/Combine Files」を無効にする分割をやめ、自動結合もやめます。 分割されたファイルも確認できます。 当然、Webインタフェースでは自動で結合されません。 ファイルは単純に切っているだけなので、ファイル名の順番に繋げれば元のファイルが再現できます。

GoogleDocsも使えるの?

使いたかったんですが、アップロードAPIが有料サービスなので私には使えませんでした。 貧しいので。

接続設定の「File」ってなに?「Host-specific file names」ってなに?

「file://host/path」の形式でローカルやWindows共有のファイル・フォルダにアクセスできます。 CarotDAVを使わなくてもUNC形式でExplorerからアクセスできるので、ほとんど意味がありません。 Explorerが生理的に使えない人、UNC形式の円記号が気持ち悪い人などはご活用ください。

サーバーがMacだとファイル名が変なんだけど。

濁点などが変なのであれば、[Setting]→[Encoding]→[Download Filename Normalization]で[NFC]に。

転送に圧縮を使いたい/使いたくない。

ダウンロードは自動で適切なアルゴリズムを選んで伸張します。 IISのRFC非準拠な圧縮にも対応してます。 圧縮してダウンロードしたくない場合は[Setting]→[Advanced]→[Don't request gzip coding]/[Don't request deflate coding]で。

HTTPの規格上、アップロードは自分でアルゴリズムを設定する必要があります。 [Setting]→[Advanced]→[Upload Compression]で。 gzipとdeflateに対応していますが、deflateに対応したサーバーを見たことがありません。 また、アップロードの圧縮に対応したサーバー自体殆どありません。

iPhoneのFilesで使いたい

そんなこと言われましても。 iPhone持ってないのでわかりません。 誰かがタダでくれるなら動作確認します。 たぶん、[Setting]→[Advanced]→[Don't Update Property]にチェックを入れないと動かないかと。

なんでニンジンなの?

ピーマンよりは描くのが楽だったからです。

スペルが違うような?

そう?

うまく動きません

仕様です。連絡をくれれば直すかも。

っていうか、いまさらWebDAVって…

WebDAV自体が消え行くもの、というのは別に構わない、 というか、むしろさっさと消えて欲しいんですが、 消えるなら代替品を用意してから消えて下さい。

更新履歴

2010/7/5 Ver. 1.7.0
  • faviconダウンロードで失敗したときに落ちる可能性があった問題を修正。
  • Dragで落ちる可能性があった問題を修正。
  • WebDAV/FTP以外の設定をエクスポート・インポートできなかった問題を修正。
  • URIを手入力した際に音がなる問題を修正。
  • セキュアな接続にアイコンを表示するように変更。
  • 低速ネットワーク・低速ストレージでのダウンロード速度向上。
  • Fileで日付の変更ができなかった問題を修正。
  • IMAPに対応。
  • その他細かい点の修正。
2010/5/3 Ver. 1.6.14
  • 安全性に応じてアイコン表示や色を変える機能を追加。
  • FTPSで、クライアント証明書が送られていなかった問題を修正。
  • その他細かい点の修正。
2010/5/1 Ver. 1.6.13
  • SkyDriveでテストフォームが動いていなかった問題を修正。
  • SkyDriveで自動分割を有効にしていた場合、ダウンロード中にメイン画面が重い問題を修正。
  • Passport認証で、トラフィックを低減するために認証をアプリ毎サイト毎に1回ずつに変更。
  • SkyDriveやPassport認証でプロキシが使われていなかった問題を修正。
  • fileスキームに対応。
  • その他細かい点の修正。
2010/4/26 Ver. 1.6.12
  • SkyDriveで自動分割する機能を追加。
  • WebDAVでDELETEできないファイルがあるSkyDriveの問題に対応。
  • FTPで、認証が2重送信してしまう.Netの問題に対応
  • フォルダ・ファイルのペースト機能を追加。
  • SkyDrive周りの細かい点をいろいろ修正。
  • その他細かい点の修正。
2010/3/31 Ver. 1.6.11
  • アップロードでの圧縮機能を追加。
  • SkyDrive周りの細かい点をいろいろ修正。
  • Passport認証で例外を吐く場合があった問題を修正。
  • その他細かい点の修正。
2010/3/19 Ver. 1.6.10
  • Digest認証でサーバーがdomainを指定した際にアップロードがうまくいかない.Netの問題に対応。
  • Passport認証で例外を吐く場合があった問題を修正。
  • WSSE認証で例外を吐く場合があった問題を修正。
  • リソースの順番でURIの認識がうまくいかなかった問題を修正。
  • キャッシュ処理が間違っていた問題を修正。
  • その他細かい点の修正。
2010/3/3 Ver. 1.6.9
  • アップロード、ダウンロード時のバッファサイズを変更。
  • タイムアウト処理が間違っていてエラーが多発する問題を修正。
  • その他細かい点の修正。
2010/3/3 Ver. 1.6.8
  • SkyDriveでプロキシを使っていなかった問題を修正。
  • フォルダのダウンロードでエラーが出る問題を修正。
  • キャッシュの更新が少なくなるよう機能追加。
  • アップロード時に表示を更新するよう機能追加。
  • メモリ消費が増えないよう修正。
  • サーバーが接続を切らない場合に接続が残る問題を修正。
  • GoogleDocsに接続する機能を追加。テスト用。
  • その他細かい点の修正。
2010/2/15 Ver. 1.6.7
  • Passport認証に対応。
  • SkyDriveに対応。
  • その他細かい点の修正。
2010/2/1 Ver. 1.6.6
  • おかしなContent-Location/Locationヘッダを返すサーバーへの対応できるよう、アルゴリズムを修正。
  • コレクションのURI生成のアルゴリズムを修正。
  • 不具合が多いので04WebServerへの対応をあきらめ、「動作確認」表示をやめる。
  • その他細かい点の修正。
2010/1/11 Ver. 1.6.5
  • ファイルの全選択ができるように変更。
  • ドラッグドロップで転送できないファイルがあった問題を修正。
  • FTPでファイルの時刻取得がうまくいっていなかった問題を修正。
  • その他細かい問題の修正。
2009/12/12 Ver. 1.6.4
  • 設定のImport/Exportができない問題を修正。
  • 新規に設定を作成する際に既定値がおかしい問題を修正。
  • その他細かい問題の修正。
2009/12/11 Ver. 1.6.3
  • FTP/FTPSに対応。
  • 「deflate」がRFC非準拠であった問題を修正。

    RFC2616準拠のRFC1950形式(zlib形式)およびRFC2616非準拠のRFC1951形式(deflate)を自動選択。

  • リダイレクトでディレクトリツリーがループになっている場合に、無限ループになる問題を修正。
  • 時刻が有効な範囲の外である場合にダウンロードできなかった問題を修正。
  • 「x-gzip」も「gzip」と認識するように修正。
  • GoToHomeを追加。
  • テスト画面の変更。
  • その他細かい点の修正。
2009/10/19 Ver. 1.6.2
  • 新規インストールできない問題を修正。
2009/10/12 Ver. 1.6.1
  • ドロップでアップロードする際に例外が出ていたのを修正。
  • その他細かい点の修正。
2009/10/7 Ver. 1.6.0
  • ドロップでダウンロードした際、問題があればエラーが出るように機能を追加。
  • クライアント証明書を送る機能を追加。
  • UnicodeのNormalization機能を追加。
  • favicon.icoをダウンロードし、表示する機能を追加。
  • 直接URIを入れた際、正常にアップロード・ダウンロードができなかった問題を修正。
  • 04WebServerでダウンロードできない場合があった問題を修正。
  • アップロード、ダウンロード終了時に表示を更新せず、キャッシュのみ変更するように変更。
  • アップロード、ダウンロードのアルゴリズムを変更。
  • 最後に使った接続を既定で選択するように変更。
  • その他細かい点の修正。
2009/1/12 Ver. 1.5.5
  • コレクションに対して「/」で終わらないレスポンスがあった場合におかしくなる問題を修正。
  • Content-Typeヘッダーの解析をより柔軟に修正。
  • UTF-8でBOMありのWebDAVメッセージが送られてきた場合に対応。
  • その他細かい点の修整。
2008/9/13 Ver. 1.5.4
  • Tile表示の機能追加。
  • グループ表示の機能追加。
  • DetailのときのColumnの幅を自動で設定できる機能追加。
  • SmallIcon/Listでアイコンが重なってしまったり極端に短く省略されてしまうListViewのバグに対応。
  • ソートを安定ソートに変更。
  • その他細かい点の修整。
2008/8/30 Ver. 1.5.3
  • IISで仮想ディレクトリを作成した場合に間違ったURIが返る不具合に対応。
2008/6/12 Ver. 1.5.2
  • 04WebServerで間違ったURIが返る不具合に対応。
  • その他細かい点の修整。
2008/3/7 Ver. 1.5.1
  • 証明書が適切でない場合にダウンロード/アップロードができなかった不具合を修正。
  • COPY、MOVEでエンコーディングがおかしくなる可能性があった不具合を修正。
  • ConnectionSettingListFormのサイズを覚えるように機能追加。
  • その他細かい点の修整。
2007/10/18 Ver. 1.5.0
  • PROPFINDに対するレスポンスを解析できない場合があったのを修整。
  • 背景を設定する機能を追加。
  • リソースのプロパティを設定する機能を追加。
  • その他細かい点の修整。
2007/9/9 Ver. 1.4.1
  • 文字コードによってはPROPFINDができなかった問題を修整。
2007/9/9 Ver. 1.4.0
  • ログファイルの生成機能を追加。
  • Destinationヘッダーで絶対URIを指定(RFC2518準拠の振る舞い)できるように機能追加。
  • 証明書エラー時に、警告を表示し、続行できるように機能追加。
  • Proxyサーバーを指定した際にエラーが出ていた問題を修整。
  • リソース名に「/」や「\」を使うとおかしくなる問題を修整。
  • Shift-JISとBig-5でいくつかの文字が使えなかったの問題を修整。
  • リソースの移動・コピーの機能追加。
  • フォルダのUploadの機能追加。
  • その他細かい点の修整。
2007/8/15 Ver. 1.3.1
  • RFC4918に準拠するよう細かい点を変更
  • マウスの「戻る」「進む」ボタンに対応
  • 一度サーバーに接続を切られると再接続可能になるまで時間がかかる問題に対応。
  • プロパティを変更しない設定を追加
  • リソース名によるソートをExplorerと同様のアルゴリズムに変更
  • その他細かい点
2007/8/1 Ver. 1.3.0
  • WSSE認証に対応
  • 認証の仕組みを変更。優先順位は変更できないようにした。
  • PROPFINDをキャッシュするようにした。
  • リソースの詳細なプロパティを表示できるようにした。
  • レスポンスの文字コードの解釈を変更。

    RFCでは既定の文字コードはISO-8859-1だが、text/xmlに関してはutf-8を既定に。

  • 設定のExport/Importができるようにした。
  • 表示を変更

    ステータスバーの追加。コンテキストメニューの追加。 アップロード/ダウンロードフォームを邪魔にならない位置に表示するように。 URI入力をToolStripに変更。Back、Forwardボタンなどを追加。その他。

  • 接続先リストを開いてもすぐに切断しないように変更
  • その他細かい点
2007/6/22 Ver. 1.2.1
  • PUTのアルゴリズムを変更。NTLM、Negotiate、Kerberosの場合には必ず空PUTを送るように。(IIS6で設定によってはPUTできなかった。)
2007/6/21 Ver. 1.2.0
  • 各種設定画面を追加した。
    • サーバーのテストを行えるように。
    • Windows既定の認証の指定(Single Sign On用)
    • 認証方法とその順序の指定
    • 各種エンコーディングの指定
    • プロキシの指定
    • 細かい振る舞いの指定
    • タイムアウトの指定
  • zipとdeflate圧縮に対応
  • 上書き確認を変更。名前を変更してダウンロードはバグを生むのでやめる。
  • フォームのサイズやコラムの幅、順序などを覚えるようにした
  • 転送フォームの位置を画面右下に表示するようにした。
  • Chunked転送をやめる。
  • NTLMやNegotiateの時にPUTで接続できない場合、空PUTして同じ接続で再PUTするようにした。
  • PUTにAllowヘッダーを追加
  • ログを表示しないモードを追加。
  • OLEドロップを改良。が、ダメ。もう無理。次に変更する気になったら一時ファイルを使います。
  • その他各種細かい点をたくさん。
2007/6/12 Ver. 1.1.1
  • ドラッグ時、バッファのコピーを忘れていたのを修整。
2007/6/11 Ver. 1.1.0
  • Digest認証、NTLM認証、SPNEGO認証に対応。
  • 長さが0のファイルのドラッグを修整。
  • 記号や日本語などが入っているユーザー名とパスワードを使えるように変更。
  • サーバーの応答にエスケープが含まれた場合、認識できない場合があったのを修整。
  • OPTIONSリクエストをすべて省略するように変更。
  • リネームに対応。
  • 非標準ヘッダーのTranslateヘッダーを追加。
  • 文字コード関連、表示関連、ドラッグドロップ関連の問題をいくつか修整
2007/5/31 Ver. 1.0.3
  • 「ToAll」が効かなかったのを修整。
  • UserAgentヘッダーを出力するように。
  • 転送速度を表示するようにした。
  • 他にいくつか細かい表示上の問題を修整。
2007/5/28 Ver. 1.0.2
  • ダウンロード時ファイルサイズが取得できない場合があったのを修整。
  • 終了時にダウンロードフォームを閉じるように変更。
2007/5/27 Ver. 1.0.1
  • Timeoutが正常に働いていないのを修整。
  • 表示を数箇所直す。
2007/5/26 Ver. 1.0.0
  • 開発に飽きたので公開。

参考資料

CarotDAVの紹介や批判

順番は適当です。

Vectorでの紹介

一応、登録してます。

haltさんによるethnawikiでの紹介

公開してすぐ、まだまともに動かないうちから絶賛して紹介してくれたページです。

HTTP/WebDAV

RFC4918

WebDAVの仕様。

RFC2518

古いWebDAVの仕様。obsolete。

RFC2616

HTTP1.1の仕様。

WebDAV Resources

WebDAV総本山。

IETF WEBDAV Working Group

IETFのワーキンググループ。ずいぶん更新されてない。

WebDAV Resources JP

日本のWebDAV総本山らしいが、さびれてて価値なし。

FTP

RFC959

FTPの仕様。

RFC2068

FEATの仕様。

RFC4217

FTPSの仕様。

IMAP

RFC3501

IMAP4rev1の仕様。

RFC2822

メールやニュースの仕様。

IMS関連

[MS-PASS]

Passport認証の仕様。

[MS-STWEB]

SkyDriveのSOAP仕様。

他のWindows用WebDAVクライアント

DAVクライアントは他に以下のようなものがあります。

WindowsのMini RedirとData Access Internet Publishing Provider

どっちもまともに動かない。Web Folderのパッチを当てるとかなりまし。

dddav

エラー表示が無いのでデータを消す事2~3回。フリーだし、前はこれをつかってました。 いまでもCarotDAVが動かない時はまずこれを試します。

TeamFileのクライアント

フリーもあります。 TeamFileを使うなら圧縮してくれる。NSE。私の場合、アンインストールがうまくいかなかくてルートにフォルダが残ったまま。うざい。

WebDrive

有料。XP時代はこれだった。

Novell NetDrive

よくわからん。ネットで拾ってくればいいらしいが、使ってない。

DataFreeway

使ったことが無いので詳細は不明。NSEだと思うが。

iDisk Utility

よくわからない。

DAV Explorer

Java製。スタンドアロン。

BitKinex

シェアウェア。スタンドアロン。

SkunkDAV

Javaによる実装。

PhotoshopとかDreamweaverとか。

どれもなかなかちゃんと動きません。

GladinetのCloud Deskop

ドライブマウント。無料!。 WebDAV/SFTP/Amazon S3/SkyDrive/Azureなど、いろいろなストレージに対応。 でも、肝心のDAVがきちんと動かない…。 壊れたキャッシュをアップロードするのはやめて。