At 12:12 PM 12/16/2002, Glen Knowles wrote:

>From: Beman Dawes [mailto:[EMAIL PROTECTED]]
>
>> > While doing so one missing function
>> >came to my mind (or did I just overlook it). It came to my mind that
>> >some time in the future I might want to create a relative path, given a
>> >"complete" path and a "complete" reference directory. Is there such a
>> >"make_relative" function? Would it be hard to add? Note that I do not
>> >ned it at this time and there is thus no hurry. I am mostly curious if
>> >others might have similar needs, and how hard it would be to add it?
>>
>>Have you looked at path::relative_path()?
>>
>>You could use it like this:
>>
>> a.root_path() / b.relative_path()
>>
>>To compose a new bath based on a's root information and b's relative
>>information. Or did I misunderstand what you needed?
>
>I think what he might be asking for is something like:
>
>make /my/full/path relative to /my/base/dir produces ../../full/path

Ah... Thanks...

The practical problem is determining if two paths are the same. What if the example was rewritten:

make /My/full/path relative to /my/base/dir

or

make /foo/full/path relative to /my/base/dir

Note that on some operating systems, "/foo" may be the same directory as "My".

Is there a reliable way on all operating systems to tell if two textually different paths represent the same underlying directory or file?

It would be easy for a Filesystem Library user to write a convenience function subject to the limitation it only considers lexically identity. I've always felt that is misleading and error prone. For safety, you really would have to have an operating system function that answers the question "do these two paths represent the same entity?"

Thanks,

--Beman


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to