Truncate a file: Difference between revisions

m
Little changes in D entry: shorter line, used enforce, swapped function positions
m (→‎{{header|D}}: check isFile)
m (Little changes in D entry: shorter line, used enforce, swapped function positions)
Line 241:
 
=={{header|D}}==
 
<lang d>import std.file, std.exception;
 
void truncateFile(in string name, in size_t newSize) {
void main() {
truncateFile("truncate_test", 100);
 
void truncateFile(string name, size_t newSize) {
if (!exists(name) || !isFile(name))
throw new Exception("File not found.");
 
auto size = getSize(name);
if (size <= newSize)
throw new Exception("New size must be smaller than original size");
"New size must be smaller than original size.");
 
 
auto content = cast(ubyte[]) read(name, newSize);
if (content.length != newSize)
throw new Exception("Reading file failed.");
 
write(name, content);
assertenforce(getSize(name) == newSize);
 
void main() {
assert(getSize(name) == newSize);
truncateFile("truncate_test.txt", 1000);
}</lang>