the file name
the attributes to set the file to
FileException if the given file does not exist.
setAttributes with a file
import std.exception : assertThrown; import std.conv : octal; auto f = deleteme ~ "file"; version (Posix) { scope(exit) f.remove; assert(!f.exists); assertThrown!FileException(f.setAttributes(octal!777)); f.write("."); auto attributes = f.getAttributes; assert(!attributes.attrIsDir); assert(attributes.attrIsFile); f.setAttributes(octal!777); attributes = f.getAttributes; assert((attributes & 1023) == octal!777); }
setAttributes with a directory
import std.exception : assertThrown; import std.conv : octal; auto dir = deleteme ~ "dir"; version (Posix) { scope(exit) dir.rmdir; assert(!dir.exists); assertThrown!FileException(dir.setAttributes(octal!777)); dir.mkdir; auto attributes = dir.getAttributes; assert(attributes.attrIsDir); assert(!attributes.attrIsFile); dir.setAttributes(octal!777); attributes = dir.getAttributes; assert((attributes & 1023) == octal!777); }
Set the attributes of the given file.
For example, a programmatic equivalent of Unix's chmod +x name to make a file executable is name.setAttributes(name.getAttributes | octal!700).