file:list_dir/1 cannot lists dot(.) and dot-dot(..) directories

Ivan Uemlianin ivan@REDACTED
Tue Jun 29 08:57:30 CEST 2021

Python doesn't include '.' or '..' either:

 >>> import os
 >>> '.' in os.listdir()
 >>> '..' in os.listdir()

Although you are able use them for example to list the content of a 

 >>> x = os.listdir()
 >>> os.chdir('..')
 >>> x == os.listdir()

Erlang's behaviour is similar:

1> {ok, Fs} = file:list_dir(D).
2> lists:member(".", Fs).
3> lists:member("..", Fs).

4> file:list_dir("..").


On 29/06/2021 07:31, Nicolas Martyanoff wrote:
> Vimal Kumar <vimal7370@REDACTED> writes:
>> I am not sure if any programming language (let alone Erlang) does that
>> while listing folder contents. The . and .. are mere references to current
>> folder and the parent folder by the OS, they does not exist in real if I am
>> not wrong.
> Other programming languages handle it as expected, e.g. in Ruby:
>      Dir.entries(".")
> On UNIX, . and .. are indeed no real files, but they behave as
> hardlinks. Not being able to use them for example to list the content of a
> directory is indeed a bug.

Ivan A. Uemlianin PhD

Ymchwil a Datblygu Technoleg Lleferydd
Speech Technology Research and Development


                         festina lente

More information about the erlang-questions mailing list