Anonymous user
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.");
auto content = cast(ubyte[])
if (content.length != newSize)
throw new Exception("Reading file failed.");
write(name, content);
▲}
▲void main() {
▲ assert(getSize(name) == newSize);
}</lang>
|