- ベストアンサー
FTPでのファイルとディレクトリの判別
- みんなの回答 (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接続のファイルにも使える関数という場合は投稿をお願いいたします。
関連するQ&A
- [WebDAV] フォルダとファイルの判別方法
現在iOSアプリで、WebDAVを使ってファイルやディレクトリの一覧を取得して表示するプログラムを作っています。 WebDAVを使って、フォルダ、ファイルの一覧を取得することはできたのですが、取得したそれぞれの情報から、フォルダなのかファイルなのかを判別する方法がわかりません。 はじめ、名前の最後に"/"(スラッシュ)がついていればフォルダ、ついていなければファイルと判別していましたが、WebDAVサーバによっては名前の最後に"/"(スラッシュ)がつかないフォルダがあったので、他に判別できる方法がないか教えていただきたいです。 よろしくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- perl(CGI)から作成したディレクトリがFTPで消せないのはなぜ?
HTMLページからそのCGIを叩くと『年月』の名前のディレクトリを作って、 その中に日毎のアクセスログファイルを作成するCGIを作っています。 ディレクトリを作成するパールは以下です。 mkdir($dir, 0777); しかし実行すると$dirのパーミッションは755になってしまいます、 その中に作成されるファイルは正常に作成されるのですが、 そのディレクトリ/ファイル共にFTPから削除/パーミッションの変更が 出来なくなってしまいます。 telnetから入って削除しようとしても普通のユーザー権限では無理で 削除する為にはルートにならなければなりません。 なぜでしょう?FTPから操作できる権限のディレクトリを作る方法が あるのでしょうか? バカな質問だと思いますが分かる方がいらっしゃいましたら教えて下さい。
- ベストアンサー
- Perl
- FTPコマンドでディレクトリごとファイル移動できるコマンドはありますか?
タイトルどおりなのですが、FTPでファイルを転送する際に、サブフォルダを含むディレクトリごとファイル転送するコマンドはありますでしょうか。 ディレクトリの中にあるすべてのファイルを移動したいのですが、サブフォルダがたくさんあるので、わざわざディレクトリの場所へ移動してmputを繰り返すのはめんどうで仕方ありません。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- delphi5でのディレクトリ内ファイル名の取得
こんにちは。質問があります。 delphiのアプリケーションであるディレクトリのフォルダ内のファイルを 別のディレクトリのフォルダ内に名前を変えてコピーしようと考えています。 基本的にコピー元のディレクトリ名はわかりません。 コピー先のディレクトリは存在しなければ、名前を指定して作成し、その中に名前を変更したファイルを格納する流れです (わかりづらいかも・・・) フォルダが存在しなければ作成したり、ファイル名を変更してコピーする のはわかったのですが、コピー元のディレクトリ内のファイル(もしくはディレクトリ)名を取得することがわかりません。 全てソースの中でプログラムしたいと考えています。(VCLは使用しない) こんなんでもわかっちゃったりする方がいらっしゃいましたら、 どうか愛の手を・・・
- ベストアンサー
- その他(プログラミング・開発)
- FTPサーバーから受信したファイル一覧からファイル名だけを取得したいです
こんばんは。いつもお世話になっております。 VB.NET+WinXPなのですが、 FTPサーバーにログインして、 LISTコマンドでファイル一覧を要求すると 「drwxrwxr-x 2 53 53 4096 Feb 28 2006 abc」 などというファイルやフォルダの一覧がかえって来ると思うのですが、 この中からファイル名やフォルダ名だけを取得するには どうしたらよいでしょうか。 TABやコンマが入っていないので、文字列関数で切り取るにも 区切りがわからないと思うのです。 ローカルドライブのDir関数なら、FileAttribute.Nomalや.Directoryの指定でファイル名だけや ディレクトリー名だけを指定して 取得することが出来るのですが、FTPサーバーの場合からの場合はどういった方法があるでしょうか。 参考程度でも構いませんので教えて頂けるとたすかります。m(__)m
- ベストアンサー
- Visual Basic
- IEからのftp接続でディレクトリを見せたくない
IEからNAS(OSはLinux)へのftp接続に関して質問です。 BuffaloのTeraStationにディレクトリを作成しアクセス権を設定、Windows/FTPでの接続可の設定を行っています。 TeraStationにアクセスするパソコンはWindows 7 Professionalです。 両方とも同じネットワーク内に存在します。 パソコンのexplorerで当該ディレクトリにアクセスしますとユーザー名とパスワードを求められますが、IEでURL欄に「ftp://(IPアドレス)」と入力すると、ユーザー名やパスワードを求められず、当該ディレクトリの最下層までディレクトリとファイルが見えてしまいます。 FTP接続を不可にしているディレクトリは見えません。 IEからのアクセスの場合、当該ディレクトリを見せない、もしくはユーザー認証させるようにすることは可能なのでしょうか。
- ベストアンサー
- その他([技術者向] コンピューター)
- perlのNet::FTPで、ファイルかディレクトリか調べたい
現在、Perlでリモートバックアップする簡単なスクリプトを 書いています。 そのためにNet::FTPモジュールを使っているのですが、 use Net::FTP; $ftp = Net::FTP->new($hostname); $ftp->login($user,$pass); $mydirs = $ftp->ls($backupdir); のようにlsメソッドでファイル一覧を取得した後で、 各ファイルがファイルなのか、ディレクトリなのか 調べたいと思っています。しかしC言語のstat関数の ようなメソッドはNet::FTPにはなさそうです。 どうすれば調べられるか、アドバイスいただけないでしょうか?
- ベストアンサー
- Perl
- ftpコマンドで再帰的にフォルダとファイルを見たい
コマンドプロンプトのftpコマンドを使用して、あるディレクトリ配下にあるフォルダとファイル一覧を再帰的に見たいです。 「コマンド:dir」では、ディレクトリ配下のフォルダ一覧は見れるのですが、フォルダの下にあるファイルまでは見ることができません。 どなたかご教授頂けるとうれしいです。 よろしくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- ftpの素朴な疑問
あるftpサーバーがあるとします。 (例えば) そのftpサーバーのIPアドレス...xxx.xxx.xxx.xxx ftpの共有フォルダー名;foldername ユーザー名:username パスワード:password とします。 ftpにアクセスするソフトはFFFTP,IE,などとします。 ==さて質問。ftpのシステム管理者はこんなことできるのでしょうか?== Q1) FFFTPなどからアクセスする際、 「フォルダー名のパスまでちゃんと入力しなくても、IPアドレス、ユーザー名、パスワードさえ入力したら、ちゃんとfoldernameにたどり着ける」という設定にできるのでしょうか? 具体的には、"ftp://username:password@xxx.xxx.xxx.xxx/"と入力したのに、ちゃんとftp://xxx.xxx.xxx.xxx/foldernameに入れる。) Q2)逆に「フォルダー名のパスまでちゃんと入力しない限り、foldernameにたどり着けない」という設定にできるのでしょうか? 具体的にはパス名がftp://xxx.xxx.xxx.xxx/foldernameじゃない限り、ユーザー名、パスワードを入力画面すら現れない) Q3)コマンドプロンプトでftp> open xxx.xxx.xxx.xxxでタイムアウトなのに、ftp> open xxx.xxx.xxx.xxx/foldernameだとアクセスできる! ということはありえるのでしょうか? 質問多くてすみませんが、教えて下さいませ。
- ベストアンサー
- その他(インターネット接続・通信)
- ftp_getできない?
レンタルサーバの自前のファイルサーバからFTP接続にてファイルを取得しようとしているのですが、エラーとなってしまいます。 FTP接続はできているのですが、ファイルの取得に失敗(FALSE)してしまいます。 レンタルサーバの環境は OS:Linux PHP:4.4.1 試しにftp_nlist関数にてファイル一覧を取得しようとしましたが、やはり失敗(FALSE)してしまいます。 知り合いのレンタルサーバを借用して全く同じプログラムを実行すると正常に一覧の取得ができました。 FTP接続時・ログイン時にはエラーが発生していないのでFTPでの転送は可能だと思うのですが、全くわかりません。 どなたか分かる方ご教授お願いします。 以下、スクリプトです。 if($ftp=ftp_connect($ftp_host)){ if(ftp_login($ftp,$ftp_user,$ftp_pass)){ //ファイルリスト一覧取得 $file_list=ftp_nlist($ftp,"."); var_dump($file_list); //ファイルダウンロード if(!(ftp_get($ftp,$local_file,$remote_file,FTP_BINARY))){ エラー処理1; } } else{ エラー処理2; } } else{ エラー処理3; }
- ベストアンサー
- PHP
お礼
ありがとうございます。 リファレンスのサンプルは英語なので食わず嫌いしてましたが、もろに書いてありますね。 今度からはちゃんと見るようにします。