Tal vez, al principio no sepas como utilizar este conocimiento pero es bueno que lo sepas para futuros proyectos. Quien sabe, tal vez te sea muy útil más adelante.
En mi caso, estaba creando un proyecto de transferencia de archivos por internet. Como sabes, no es posible mandar todo el archivo (si es grande) en un solo viaje por lo que mandaba el archivo por pedazos.
El problema era que cada vez que llegaba un pedazo necesitaba agregarlo al final del archivo lo cuál requiere tiempo de procesamiento por parte del sistema operativo para poder ubicar dicho espacio. Con el conocimiento de este artículo ahora simplemente creo el espacio necesario al inicio y lo único que hago cuando llegan los pedazos del archivo es colocarlos dónde corresponden.
Es más, ahora los pedazos no necesitan llegar en orden porque como ya tengo todo el archivo creado, es cuestión de ubicarlos en la posición correcta. Esta es más o menos la forma en la que trabajan los programas de torrents. Si te das cuenta, a penas comienza la descarga ya se creó un archivo con el tamaño final del archivo, por más de que solo se hayan descargado unos cuantos bytes.
Calculando los bytes necesarios
Lo primero que necesitas saber es como calcular el tamaño en bytes. Espero que sepas que:
1,024 bytes = 1 KB
1,024 KB = 1 MB
1,024 MB = 1 GB
y así sucesivamente
Es por esta razón que para obtener la cantidad de bytes en 2 Gb necesitamos hacer lo siguiente:
2 GB * 1,024 = 2,048 MB
2,048 MB * 1,024 = 2,097,152 KB
2,097,152 KB * 1,024 = 2,147,483,648 bytes
por lo que 2 GB = 2,147,483,648 bytes.
Creando el archivo de 2 Gb
Para crear un archivo grande, necesitas utilizar la lïnea de comandos (cmd) en modo administrador. En esta línea de comandos simplemente escribe el siguiente comando:
fsutil file createnew "C:\Copstone\archivo2GB.dat" 2147483648
Listo! acabas de crear un archivo de 2 GB en cuestión de segundos. Claro está que este comando se puede utilizar utilizando el API de Windows ShellExecute. Para saber como utilizar este comando visita Abrir aplicaciones externas desde C++

excelente!! gracias por la aportación