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

Ivan Uemlianin <[email protected]>
Newsgroups gmane.comp.lang.erlang.general
Message-ID <[email protected]>
Python doesn't include '.' or '..' either:

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

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

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

Erlang's behaviour is similar:

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

4> file:list_dir("..").
{ok,[<filenames>]}

Ivan


On 29/06/2021 07:31, Nicolas Martyanoff wrote:
> Vimal Kumar <[email protected]> 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
Llaisdy

Ymchwil a Datblygu Technoleg Lleferydd
Speech Technology Research and Development

                     [email protected]
                         @llaisdy
                          llaisdy.wordpress.com
               github.com/llaisdy
                      www.linkedin.com/in/ivanuemlianin

                         festina lente
============================================================
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.