Path as an object in std.path

Flamaros flamaros.xavier at gmail.com
Thu Jun 6 00:26:52 PDT 2013


On Wednesday, 5 June 2013 at 06:27:46 UTC, Dylan Knutson wrote:
> Hello,
> I'd like to open up the idea of Path being an object in 
> std.path. I've submitted a pull 
> (https://github.com/D-Programming-Language/phobos/pull/1333) 
> that adds a Path struct to std.path, "which exposes a much more 
> palatable interface to path string manipulation".
>
> As jmdavis points out, this has previously been discussed. 
> However, I can't find that discussion, and I think that the 
> benefits of including an OO way to deal with paths is a serious 
> gain for the standard library.
>
> Why I think it should be reconsidered for inclusion in the std 
> (listed in the pull):
> * Adds a (more) platform independent abstraction for path 
> strings.
> * Path provides a type safe way to pass, compare, and 
> manipulate arbitrary path strings.
> * It wraps over the functions defined in std.path, so behavior 
> of methods on Path are, in most cases, identical to their 
> corresponding module function.
>
> I'd like some feedback on what others think about this; I'd 
> hate to see this commit closed due to a discussion that 
> happened at a different point in D's development when the 
> language had different needs.
>
> Thank you.

I like the idea to manipulate paths trough an object. API that 
taking path as parameter as better typed than with string. It's 
really usefull for file loaders, it's affirm the method will do 
path related operation and expect a particular string format.

Some methods seems miss like completeBaseName and completeSuffix.
You can take a look to : Qt API
http://qt-project.org/doc/qt-4.8/qfileinfo.html

The bad thing with the Qt API it's we can't know which method do 
a file system access, that why I prefer having 2 separated ojects.

It would be good to have the FileInfo object.


More information about the Digitalmars-d mailing list