我需要知道某个目录是否为空,以便它们不会显示。
尝试存储:如果目录有文件;然后我会在视图中调用它。
def index
@filter = params[:filter]
@type = params[:type]
@content = []
if @filter
directory_path = "public/files/marketing/voip"
directory = Dir.glob("#{directory_path}/#{@filter}/#{@type}")
directory.each do |data|
if File.exists?(data) && !File.directory?(data)
@content = Array.new("#{@type}")
end
@view = 'types'
end
end
我不知道如何存储信息,这里我只想存储@type的空目录。
然后在视图中调用@content以显示存储了@type的目录。
答案 0 :(得分:1)
1)为什么要检查File.exists?您只需对目录进行全局操作,因此结果中的每个项目实际上都存在。
2)
我想存储只有空目录的@type。
@empty_dir_types = []
...
fname = "...."
if Dir.entries(fname).empty?
@empty_dir_types << File.basename fname
end
或者,
@type = params[:type]
@empty_dir_types = []
...
fname = "...."
if Dir.entries(fname).empty?
@empty_dir_types << @type
end
或者,
@type = params[:type]
@empty_dir_type = nil
fname = "...."
if Dir.entries(fname).empty?
@empty_dir_type = @type
end
答案 1 :(得分:0)
这是有用的:
@view = 'types'
#Loop through directories to see if files exist
#If files exist add directory name to @array
@directories = Array.new
@all_directories = Dir.glob("public/files/marketing/voip/#{@filter}/*")
@all_directories.each do |directory|
base_directory = Dir.glob("#{directory}/*")
unless base_directory.empty?
@directories.push(File.basename(directory))
end
这遍历每个目录,如果它不为空,则将basename推送到我的数组。