On Monday 03 January 2011 14:42:01 Jesse Phillips wrote: > I do not know of a good reason for having a Path type. However I do > believe much can be added to help with manipulated paths. Here are > some issues I've had. > > * Converting to the proper sep > * getBaseName(getName(file)) will give just the filename and no path > when there is no extension, switching the calls gives you nothing. > * A quoted path is sometimes valid, and some times not. Namely making > system calls needs the quotes or escaped spaces, while std.file > expects none of that. > * It should be easy to convert one OS path style to another. (Ignoring > drive letter)
A fancier feature would be to have a function which converts a file name to one which is valid for the current OS. Which characters are valid does vary somewhat from file system to file system, but it's OS-specific enough that it can be done. Windows OSes have a specific set of characters that they disallow regardless of the underlying file system, and Linux file systems disallow the null character and sometimes / (so, if you just assume that the null character and / are the only disallowed characters, you should be fine). I'm not sure what Mac OS X does though. In any case, having a function which will convert characters if necessary to make the file name valid for the current OS would be useful for cross-platform compatability, and it doesn't require a path type. If we're looking to try and abstract out some of the path stuff a bit better without having a separate path type, then having a function like Haskell's combine, which concatenates two parts of a path with the appropriate separator (so, effectively part1 ~ sep ~ part2) would help (it would clean up code too, though you obviously don't _need_ such a function, since we _can_ just concatenate with sep). There are probably other, similar functions that we could add which would help with abstracting out some of the system-specific, path pain without needing a separate path type. - Jonathan M Davis _______________________________________________ phobos mailing list [email protected] http://lists.puremagic.com/mailman/listinfo/phobos
