On Saturday, December 28, 2013 07:21:28 Marco Leise wrote: > schrieb Jonathan M Davis <jmdavisp...@gmx.com>: > > We need to try hard to make Phobos cross-platform and portable, but some > > stuff just can't be, and std.file already has some functions which fall > > in that category (e.g. anything symlink related or dealing with file > > times). And having a D wrapper around that functionality can make code > > much cleaner, so I'm all for having a limited number of system-specific > > functions in std.file if that's what it takes to get the job done (and > > file permissions tend to fall in that category). > > > > - Jonathan M Davis > > But SetFileAttributes doesn't set file permissions (except for > "read-only")! Chmod does. If you want a D wrapper for > POSIX chmod in std.file, it should be exactly that. For > Windows you need to work with ACLs to change permissions.
I'm not arguing the exact API for setFileAttributes, since I haven't spent the time as of yet to look it over and therefore do not feel qualified to comment on it specifically. My main point was that some stuff in std.file is system- specific and that if it has to be, it's better to have it in std.file as system- specific rather than not having it at all just because it couldn't be completely cross-platform and portable. So, just because setFileAttributes is doing something system-specific does not mean that it's bad. But its validity may very well be argued on other counts (e.g. whether it's actually a good API for what it does). - Jonathan M Davis