- ベストアンサー
FTPでのファイルとディレクトリの判別
現在FTPにアクセスしてファイル操作をするプログラムを作っています。 その中でフォルダ(ディレクトリ)の一覧(名前)とファイルの一覧(名前)を別々に出したいのですが何か方法ありますでしょうか? ftp_nlistで一覧を出せることはわかったのですが、どうやってフォルダなのかファイルなのかを切り分けていけばいいのかがわかりません。 ファイル名には拡張子がついていない場合もあるので「.xxx」というのが名前の最後にあるものがファイルという分け方もできません。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
参考URLに is_ftp_dir というサンプルプログラムがありますが、 これを使って(あるいは同様な方法で)ディレクトリであるかどうか判別できると思います。 逆に言えば、このようなサンプルを載せるということは、直接的な関数が無いことの表れであると思います。
その他の回答 (3)
- みずの(@mizuno3)
- ベストアンサー率73% (192/263)
パーミッションの部分で判別出来ると思います。 drwxr-xr-x ←ディレクトリ -rwxr-xr-x ←ファイル
お礼
ありがとうございます。 パーミッションの一文字目がdか否かで判定すればできましたね。
- cucsna
- ベストアンサー率23% (12/51)
No1の方への補足を読むと、FTP関数しか使えないということでしょうか? 試したことはないので、どのような動作になるか分からないのですが、 ftp_rawlistという関数は使えないでしょうか。 FTP LIST コマンドを実行すると書いてあるので、使えそうな気がします。 URLをのせておきますが、いろいろ使用例が書いてありました。 全く動きは確認せず回答してしまっているのですが、 期待されている回答でなかったらすみません。
お礼
ありがとうございます。 ftp_rawlistに直にディレクトリかファイルかということは書いていませんが他の方の回答と合わせることで実現できそうです。 ありがとうございました。
- bob_n
- ベストアンサー率35% (610/1732)
補足
回答ありがとうございます。 この方法は一度関連するフォルダ及びファイルをすべてローカルにコピーしてからそれぞれリンク先の関数で調べるということですよね。 しかし、FTP上で表示したいファイルの数が100以上ありftp以外の方法でのアクセスはできません。 残念ながらこの方法は使えません。 他の方法もしくは、私が勘違いしていてFTP接続のファイルにも使える関数という場合は投稿をお願いいたします。
お礼
ありがとうございます。 リファレンスのサンプルは英語なので食わず嫌いしてましたが、もろに書いてありますね。 今度からはちゃんと見るようにします。