Removing file names with '.' in their names from list?

Currently I'm using this code to output a list of files to a .rhtml
page:

<%
Dir.foreach("/") do |file|
  next if File.fnmatch('*.*', file)
  puts '<a href="file">' + file + '</a>'
end
%>

This removes files from the list output such as 'photo.jpg'.

But it leaves the files with names like '.htaccess', ',' and '..'.

I could create more of the 'next' statements explicitly for those file
and directory names but wondering if there's a more elegant way to say
don't output files with a '.' in their names.

···

--
Posted via http://www.ruby-forum.com/.

I would suggest
     next if /\./ === file

Beautiful. Thanks!

···

--
Posted via http://www.ruby-forum.com/\.

Under UNIX, a * never matches a . at the beginning of a filename, and *.*
also never matches this.

add another rule
  next if File.fnmatch('.*',file)
and you should be fine.

···

On Mon, 13 Aug 2007 07:16:49 +0900, Sfdesigner Sfdesigner wrote:

Currently I'm using this code to output a list of files to a .rhtml
page:

<%
Dir.foreach("/") do |file|
  next if File.fnmatch('*.*', file)
  puts '<a href="file">' + file + '</a>'
end
%>

This removes files from the list output such as 'photo.jpg'.

But it leaves the files with names like '.htaccess', ',' and '..'.

I could create more of the 'next' statements explicitly for those file
and directory names but wondering if there's a more elegant way to say
don't output files with a '.' in their names.

--
Ken Bloom. PhD candidate. Linguistic Cognition Laboratory.
Department of Computer Science. Illinois Institute of Technology.
http://www.iit.edu/~kbloom1/

Hi,

At Mon, 13 Aug 2007 07:16:49 +0900,
Sfdesigner Sfdesigner wrote in [ruby-talk:264328]:

Currently I'm using this code to output a list of files to a .rhtml
page:

<%
Dir.foreach("/") do |file|
  next if File.fnmatch('*.*', file)
  puts '<a href="file">' + file + '</a>'
end
%>

This removes files from the list output such as 'photo.jpg'.

But it leaves the files with names like '.htaccess', ',' and '..'.

File.fnmatch('*.*', file, File::FNM_DOTMATCH)

···

--
Nobu Nakada

perhaps:
  next if file.include?('.')

Though Robert's solution does the same thing.

HTH,
Chris

···

On Aug 12, 4:16 pm, Sfdesigner Sfdesigner <dan...@seniorartdirector.com> wrote:

Currently I'm using this code to output a list of files to a .rhtml
page:

<%
Dir.foreach("/") do |file|
  next if File.fnmatch('*.*', file)
  puts '<a href="file">' + file + '</a>'
end
%>

This removes files from the list output such as 'photo.jpg'.

But it leaves the files with names like '.htaccess', ',' and '..'.

I could create more of the 'next' statements explicitly for those file
and directory names but wondering if there's a more elegant way to say
don't output files with a '.' in their names.
--
Posted viahttp://www.ruby-forum.com/.