4

ディレクトリの項目がファイルなのかディレクトリなのか、Net::SFTPRubyコードを使って識別する方法は?

4

3 に答える 3

6

このdo_stat方法では、その情報を取得できるようです。Net::SFTP::Attributesおよびのドキュメントも参照してくださいperldoc -f stat

于 2009-11-26T13:42:39.930 に答える
5

Manniの推奨事項の使用を説明するために:

use Fcntl(:mode);

my $permissions  = $sftp->do_stat($path)->perm();
my $is_directory = S_ISDIR($permissions);
于 2009-11-26T13:54:31.997 に答える
1

SFTP と Ruby でそれを行うには、少なくとも 2 つの方法があります。

require 'net/sftp'
Net::SFTP.start('HOSTNAME', 'USER', :password => 'PASSWORD') do |sftp|

  file = File.expand_path(__FILE__)
  dir  = File.dirname(file)

  sftp.lstat!(file).directory?
  sftp.lstat!(dir).file?

  sftp.file.open(dir, "r") do |f|
    f.stat.file?
    f.stat.directory? # true
  end

end
于 2012-01-29T11:31:28.100 に答える