• ベストアンサー

[WebDAV] フォルダとファイルの判別方法

現在iOSアプリで、WebDAVを使ってファイルやディレクトリの一覧を取得して表示するプログラムを作っています。 WebDAVを使って、フォルダ、ファイルの一覧を取得することはできたのですが、取得したそれぞれの情報から、フォルダなのかファイルなのかを判別する方法がわかりません。 はじめ、名前の最後に"/"(スラッシュ)がついていればフォルダ、ついていなければファイルと判別していましたが、WebDAVサーバによっては名前の最後に"/"(スラッシュ)がつかないフォルダがあったので、他に判別できる方法がないか教えていただきたいです。 よろしくお願いいたします。

  • ab_yu
  • お礼率100% (1/1)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

RFC4918の5.2.に詳しく書かれています。 正確にはPROPFINDのレスポンス、resourcetypeノードにcollectionが定義されているかどうかでフォルダかファイルかが区別されます。 通常は末尾のスラッシュの有無でコレクションかどうかを判断してもよいことになっています。 コレクションなのに末尾スラッシュなしでリクエストされた場合はContent-LocationやLocationヘッダーでスラッシュ付きのURIが返ってくるはずです。

参考URL:
http://tools.ietf.org/html/rfc4918
ab_yu
質問者

お礼

教えていただいた方法でファイルとフォルダの判別をすることが出来ました。 ご回答ありがとうございました。

関連するQ&A

  • FTPでのファイルとディレクトリの判別

    現在FTPにアクセスしてファイル操作をするプログラムを作っています。 その中でフォルダ(ディレクトリ)の一覧(名前)とファイルの一覧(名前)を別々に出したいのですが何か方法ありますでしょうか? ftp_nlistで一覧を出せることはわかったのですが、どうやってフォルダなのかファイルなのかを切り分けていけばいいのかがわかりません。 ファイル名には拡張子がついていない場合もあるので「.xxx」というのが名前の最後にあるものがファイルという分け方もできません。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • webdavを使ったファイルのアップロード、ダウンロードについて

    WebDAVを使ってファイルのアップロード、ダウンロードをする方法についてお聞きします。(サーバ側:linux, クライアント側:Windowsの場合) Windowsでネットワークプレースを追加することにより、マイネットワークからwebDAVを設定したサーバのディレクトリにアクセスでき、ファイルのアップロード、ダウンロードができますが、IEなどのブラウザでURLを開いただけでは、ファイルのアップロード、ダウンロードができたりはしないのでしょうか???

  • UNIX・WebDAVの動作が不安定です

    自宅内のFedora8サーバにWebDAVサーバを構築しました。 作成したWebDAVフォルダへWindowsXPから接続しているのですが、動作がとても不安定で困っています。 Windowsクライアントでマイネットワーク→ネットワークプレースの追加という一般的な手順でWebDAVフォルダに接続しているのですが、アクセスできたりできなかったりします。 ファイルを開くときに「ファイルが開けません。ファイル名が正しいか確認してください。」と言われたり WebDAVディレクトリのウィンドウをリロードしたときに多いのは「アクセスできません。このネットワークリソースを使用する許可がない可能性があります。アクセス許可があるかどうかこのサーバーの管理者に問い合わせてください。 ネットワークパスがみつかりません。」 と出て、ウィンドウがグレーになります。その後あきらめずに数回から数十回リロードを繰り返すとたまにファイル一覧が表示されます。 運がよいときはファイルの中身を読んだり、編集して書き込んだり、ファイルを新規作成する事もできます。 その他 クライアント・サーバ共に同じセグメントで固定ローカルIPになっています。 同じapacheのWebサーバへは同じクライアントのブラウザから問題なく表示できます。 同じサーバに構築したSambaのディレクトリは問題なく自由にアクセスできます。 httpd -version : Server version: Apache/2.2.6 (Unix) 以下httpd.confの関係ありそうな部分抜粋 LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so # WebDAV module configuration section. <IfModule mod_dav_fs.c> # Location of the WebDAV lock database. DAVLockDB /var/lib/dav/lockdb </IfModule> 上記はデフォルト値のまま、下記は自分でWebDAV用に追加しました。 Alias /webdav "/var/www/html/webdav" <Location /webdav> DAV On Order deny,allow Deny from all Allow from all </Location> 他にバーチャルホストの設定を追加してあります。 ローカルIP・ホスト名・サーバ名(DNSを設定してあります)どれでアクセスしてみてもWebDAVディレクトリへのアクセスは同じように不安定です どの辺りが怪しいか、お気づきの点があればぜひご教授願います。

  • webdavでのファイル閲覧

    redhat4(ES)のapache2でwebdavのテストをしています。 windowsXPの「ネットワークプレースを追加する」にて目的のフォルダにアクセスし、ファイルのアップロード、ダウンロードが出来るようにはなりました。 ただ、例えばjpgをアップロードしてそれをダブルクリックしても表示はされません。docファイルも表示されません。htmlのみブラウザが開く状態です。 httpd.conf、あるいはwebdav.confの関連づけの問題かなとおもうのですがどのような設定をすればよいでしょうか。 ちなみにブラウザで同じディレクトリにアクセスした場合、jpg,docとも問題なく閲覧できます。 webdav.confの記述は以下です。 --- Alias /hogehoge/ "/var/www/html/hogehoge/" <IfModule mod_dav.c> DAVMinTimeout 600 <Location /hogehoge> DAV On SSLRequireSSL AllowOverride None Options Indexes AuthType Basic AuthName WebDAV AuthUserFile /etc/httpd/conf/.htpasswd Require user testuser Order deny,allow Deny from all Allow from all </Location> </IfModule> ---

  • macのwebdavサーバーについて

    Mac mini server Lionでwebdavサーバーを利用しています。 ファイルのダウンロード、アップロードは可能なのですが、 編集して保存することができません。 Finderを見ていると何か新しいフォルダを作成し、そしてすぐに削除、を 何度も繰り返しています。 そしてそのうち保存しようとした書類がフリーズします。 その際のエラーには「ファイルがロックされています」と 「アクセス権がありません」と表示されています。 しかし、ファイルをFinderで確認してもロックはされておらず、また アクセス権も、書き込み、読み出し可能と表示されています。 ログインにはメインのアカウントでログインしています。 この場合はどうすればいいのでしょうか? もしくはWebdavを使った場合にはサーバー上で ファイルを編集することはできないのでしょうか

    • 締切済み
    • Mac
  • WebDAV のロック

    Numbers のファイルにロックがかかってくれません。 WebDAV にて公開しているディレクトリの中に、Excel と Numbers のファイルがあります。 Excel のファイルは、同時に2人が開こうとするとダイアログが表示され、読み取り専用で開け、と言われるのですが、Numbers のファイルはすんなり開いてしまいます。 Apache のアクセスログを見てみたのですが、 Excel のファイルは、開くときに LOCK メソッドが実行され、閉じるときに UNLOCK メソッドが実行されます。 Numbers のファイルは、開くときにも閉じるときにも、LOCK/UNLOCK メソッドが実行されません。 セーブする時に、LOCK/UNLOCK メソッドが秒単位レベルで同時に実行されます。 これは個々のアプリケーション依存で、どうしようもないのでしょうか? クライアントは Mac OS X 10.6 です。 Excel: Excel 2011 (14.0.2) Numbers: Numbers '09 (2.0.5) 【環境】 OS: CentOS release 5.5 x86_64 HTTP サーバー: Apache 2.2.3 【設定】※ 一部抜粋 #モジュールの読み込み LoadModule dav_module modules/mod_dav.so LoadModule dav_fs_module modules/mod_dav_fs.so #ロックファイルのための設定 <IfModule mod_dav_fs.c>     # Location of the WebDAV lock database.     DAVLockDB /var/lib/dav/lockdb </IfModule> #for WebDAV Alias   /webdav    "/var/www/webdav" <Location /webdav>         DAV on         SSLRequireSSL         AuthType        Basic         AuthName        "WebDAV Server"         AuthUserFile    "/etc/httpd/.htpasswd"         Require valid-user </Location>

  • WebDavのWindows用クライアントソフトにはどんなのがありますか?

    WebDavサーバに対して、Windows環境からファイルを自動で転送しよう思い、ftpコマンドのようにコマンドラインで動作するWebDavクライアントがないか探しましたが見つかりませんでした。 WEBフォルダでは上記のような自動操作は難しそうに感じますが、できますか? また、バッチ処理などで自動実行できるWindows用のWebDavクライアントソフトはあるのでしょうか?

  • フォルダのアクセス権の一覧を取得方法について

    Windowsのコマンドプロンプトでフォルダのアクセス権の一覧を取得したいです。 ディレクトリとサブディレクトリのアクセス権とオーナーが誰かだけ取得したいのですが、方法はありますでしょうか? PowerShellで実行しましたら、「get-acl 許可されていない操作を実行しようとしました。」と出まして、上手くいきません。 そこで、コマンドプロンプトで取得しようと考えているのですが、なかなか良い方法が見付かりませんでして。 ファイルに出力する形式にしたいです。 ご回答頂ければ幸いです。宜しくお願いします。

  • 転送先フォルダーは?

    無料レンタルサーバーの利用を始めたばかりの初心者です。 今回、初めて作ったマイホームページをインターネットに載せようと アップロードしたのですが画面が表示されません。 FFFTPを使用したのですが、「ファイル一覧取得」はできていました。 どこが、いけなかったの分かりません。 また、レンタルサーバー側の転送先フォルダーの表記はなく、「ホーム・ウェブ・公開ディレクトリ」の三つが書いてありました。この三つのディレクトリそれぞれにアップロードしなければならないのでしょうか?これが、転送先フォルダーなのでしょうか? また、ホームディレクトリに初めからはいっていたファイルを削除してしまったときはどのように対処したらよろしいのでしょうか? 分かりやすい回答、お待ちしてます。m(__)m

  • FTPサーバーから受信したファイル一覧からファイル名だけを取得したいです

    こんばんは。いつもお世話になっております。 VB.NET+WinXPなのですが、 FTPサーバーにログインして、 LISTコマンドでファイル一覧を要求すると 「drwxrwxr-x 2 53 53 4096 Feb 28 2006 abc」 などというファイルやフォルダの一覧がかえって来ると思うのですが、 この中からファイル名やフォルダ名だけを取得するには どうしたらよいでしょうか。 TABやコンマが入っていないので、文字列関数で切り取るにも 区切りがわからないと思うのです。 ローカルドライブのDir関数なら、FileAttribute.Nomalや.Directoryの指定でファイル名だけや ディレクトリー名だけを指定して 取得することが出来るのですが、FTPサーバーの場合からの場合はどういった方法があるでしょうか。 参考程度でも構いませんので教えて頂けるとたすかります。m(__)m