• ベストアンサー

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

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

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

参考URLに is_ftp_dir というサンプルプログラムがありますが、 これを使って(あるいは同様な方法で)ディレクトリであるかどうか判別できると思います。 逆に言えば、このようなサンプルを載せるということは、直接的な関数が無いことの表れであると思います。

参考URL:
http://jp2.php.net/manual/ja/function.ftp-nlist.php
mentaiko2
質問者

お礼

ありがとうございます。 リファレンスのサンプルは英語なので食わず嫌いしてましたが、もろに書いてありますね。 今度からはちゃんと見るようにします。

その他の回答 (3)

回答No.4

パーミッションの部分で判別出来ると思います。 drwxr-xr-x ←ディレクトリ -rwxr-xr-x ←ファイル

mentaiko2
質問者

お礼

ありがとうございます。 パーミッションの一文字目がdか否かで判定すればできましたね。

  • cucsna
  • ベストアンサー率23% (12/51)
回答No.2

No1の方への補足を読むと、FTP関数しか使えないということでしょうか? 試したことはないので、どのような動作になるか分からないのですが、 ftp_rawlistという関数は使えないでしょうか。 FTP LIST コマンドを実行すると書いてあるので、使えそうな気がします。 URLをのせておきますが、いろいろ使用例が書いてありました。 全く動きは確認せず回答してしまっているのですが、 期待されている回答でなかったらすみません。

参考URL:
http://jp.php.net/manual/ja/function.ftp-rawlist.php
mentaiko2
質問者

お礼

ありがとうございます。 ftp_rawlistに直にディレクトリかファイルかということは書いていませんが他の方の回答と合わせることで実現できそうです。 ありがとうございました。

  • bob_n
  • ベストアンサー率35% (610/1732)
回答No.1
mentaiko2
質問者

補足

回答ありがとうございます。 この方法は一度関連するフォルダ及びファイルをすべてローカルにコピーしてからそれぞれリンク先の関数で調べるということですよね。 しかし、FTP上で表示したいファイルの数が100以上ありftp以外の方法でのアクセスはできません。 残念ながらこの方法は使えません。 他の方法もしくは、私が勘違いしていてFTP接続のファイルにも使える関数という場合は投稿をお願いいたします。

関連するQ&A