Hi Sven,

Your second example expression fails for 'workingDirectory':

FileLocator workingDirectory resolve pathSegments
==> #()

It works fine for FileLocator home but not for FileLocator workingDirectory .

Your first expression will produce the desired result, if ensourcelled with syntactimancy:

FileLocator workingDirectory pathString asFileReference pathSegments

This smells a lot like an edge case to me. But perhaps it is the Way of Smalltalk.

Thanks
David



On Wed, 13 Feb 2019 at 22:46, Sven Van Caekenberghe <sven@stfx.eu> wrote:
David,

> On 14 Feb 2019, at 03:56, David Richards <david.i.richards.iii@gmail.com> wrote:
>
> Hi community,
>
> Consider:
>
> | file |
> file := FileLocator workingDirectory .
> file fullName .
> "==> '/Users/dr/Documents/Pharo/images/Study (Pharo 7.0 - 64bit stable)'"
> file pathSegments .
> "==> #()"
>
> How do we obtain path segments for the working directory?
>
> Is this an edge case where pathSegments does not return a semantically consistent value?
>
> Thanks
> David

A FileLocator is a bit special, it is usable, but not yet fully realised, more abstract.

You can use resolve. Consider:

FileLocator home pathString.
��"'/Users/sven'"

FileLocator home resolve pathSegments.
��"#('Users' 'sven')"

HTH,

Sven