FileResize
While expanding a file by appending zeros is easy in Matlab, truncating is much harder: Create a new file, copy the contents of the original file until the wanted position, delete original file, rename the new file. For large files this is rather inefficient.
This C-Mex function can expand or truncate a file directly. For expanding it is twice as fast as using FWRITE to append zeros, and the speedup for truncating files grows fast with the file length.
[Status, Msg] = FileResize(File, Bytes, Mode)
INPUT:
File: File name, Unicode and UNC paths accepted.
Bytes: Number of bytes.
Mode: 'set': Absolute size, this is the default.
'move': Relative to the end, truncate if [Bytes] is negative.
OUTPUT:
Status: Scalar DOUBLE, 0 on success, otherwise < 0.
Msg: Explanations of problems.
This function must be compiled before it can be used, or download a pre-compiled file:
http://www.n-simon.de/mex
Tested: Matlab 6.5, 7.7, 7.8, 7.13, WinXP/32, Win7/64
Compiler: LCC3.8, BCC5.5, OWC1.8, MSVC2008/2010
Assumed Compatibility: higher Matlab versions, Linux and MacOS.
Run the unit-test function uTest_FileResize to check validity and speed.
Bugreports and suggestions for improvements are welcome.
Cite As
Jan (2026). FileResize (https://uk.mathworks.com/matlabcentral/fileexchange/37384-fileresize), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Acknowledgements
Inspired: Truncate file
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
| Version | Published | Release Notes | |
|---|---|---|---|
| 1.0.0.0 |
