FileResize

Versione 1.0.0.0 (8,71 KB) da Jan
Expand and truncate existing files - efficient C-Mex
308 download
Aggiornato 3 lug 2012

Visualizza la licenza

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.

Cita come

Jan (2024). FileResize (https://www.mathworks.com/matlabcentral/fileexchange/37384-fileresize), MATLAB Central File Exchange. Recuperato .

Compatibilità della release di MATLAB
Creato con R2011b
Compatibile con qualsiasi release
Compatibilità della piattaforma
Windows macOS Linux
Categorie
Scopri di più su File Name Construction in Help Center e MATLAB Answers

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Versione Pubblicato Note della release
1.0.0.0