如何使用Net::SFTP
或ruby代码识别目录项是文件还是目录?
答案 0 :(得分:6)
do_stat
方法似乎可以为您提供这些信息。另请参阅Net::SFTP::Attributes
和perldoc -f stat
的文档。
答案 1 :(得分:5)
use Fcntl(:mode);
my $permissions = $sftp->do_stat($path)->perm();
my $is_directory = S_ISDIR($permissions);
答案 2 :(得分:1)
在SFTP和Ruby中至少有两种方法:
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