# How distinguish between a file and a directory?

**URL:** <https://www.ruby-forum.com/t/how-distinguish-between-a-file-and-a-directory/117401>\
**Category:** Ruby\
**Created:** [October 16, 2007, 5:01pm UTC](https://www.ruby-forum.com/t/how-distinguish-between-a-file-and-a-directory/117401 "2007-10-16T17:01:38Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Bazsl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/ad7895/32.png) [@Bazsl](https://www.ruby-forum.com/u/Bazsl)\
**Post date:** [October 16, 2007, 5:01pm UTC](https://www.ruby-forum.com/t/how-distinguish-between-a-file-and-a-directory/117401/1 "2007-10-16T17:01:38Z")

</div>

A newbie question. The code

```
Dir.foreach(Dir.getwd) do |f|
  if ((f != '.') && (f != '..'))
    puts f
  end
end

```

lists the files and directories in the current working directory but  
does not identify which is a file and which is a directory. How can I  
add that information to the listing? Thanks.

---

<div class="post-metadata">

**Author:** ![Bazsl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/ad7895/32.png) [@Bazsl](https://www.ruby-forum.com/u/Bazsl)\
**Post date:** [October 16, 2007, 5:08pm UTC](https://www.ruby-forum.com/t/how-distinguish-between-a-file-and-a-directory/117401/2 "2007-10-16T17:08:04Z")

</div>

File::directory?(path)  
will return true of name is a directory, false if it is a file

Farrel

---

<div class="post-metadata">

**Author:** ![Bazsl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/ad7895/32.png) [@Bazsl](https://www.ruby-forum.com/u/Bazsl)\
**Post date:** [October 16, 2007, 7:19pm UTC](https://www.ruby-forum.com/t/how-distinguish-between-a-file-and-a-directory/117401/3 "2007-10-16T19:19:19Z")

</div>

On 10/17/07, Bazsl [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> add that information to the listing? Thanks.  
> Dir[‘\*’].each do |f|  
> print "#{f} is a: "  
> if File.directory?(f)  
> puts “directory”  
> else  
> puts “file”  
> end  
> end

Please note that Dir::[] is an alias to Dir::glob and it will not show  
you files starting with a dot unless you use Dir[‘{,.}\*’]

^ manveru
