0

我需要知道目录是否为空,以免显示。

尝试存储:如果目录有文件;然后我会在视图中调用它。

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 的目录。

4

2 回答 2

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
于 2013-08-18T18:10:57.087 回答
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

这会遍历每个目录,如果它不为空,则将基本名称推送到我的数组。

于 2013-08-19T22:33:07.037 回答