En la misma línea que crear rápidamente un archivo grande en un sistema Linux , me gustaría crear rápidamente un archivo grande en un sistema Windows. En general estoy pensando en 5 GB. El contenido no importa. Sería preferible un comando incorporado o un archivo por lotes corto, pero aceptaré una aplicación si no hay otras formas fáciles.
windows
batch-file
Leigh Riffel
fuente
fuente
fsutil file createnew
NO crea archivos dispersos:c:\>fsutil file createnew test.txt 0x100000
File c:\test.txt is created
c:\>fsutil sparse queryflag test.txt
This file is NOT set as sparse
Puede usar la herramienta Contig de Sysinternals . Tiene un
-n
interruptor que crea un nuevo archivo de un tamaño determinado. A diferenciafsutil
, no requiere privilegios administrativos.fuente
contig
efectivamente va al último byte y escribe un solo0
allí (solo mire con Process Monitor). Windows luego llena el resto con ceros. Esto es probablemente lo más eficiente posible con archivos no dispersos y la creación de un archivo de aproximadamente 5 GiB de tamaño solo toma unos segundos incluso en mi disco duro. Supongo que en ese entonces lo intenté en un SSD o con archivos más pequeños. Pero es bastante rápido (y definitivamente más rápido que escribir todos los bytes del archivo vacío usted mismo.)Estaba buscando una manera de generar archivos grandes con datos, no solo archivos dispersos. Encontré la siguiente técnica :
fuente
echo "This is just a sample line appended to create a big file.. " > dummy.txt for /L %i in (1,1,14) do type dummy.txt >> dummy.txt
(Ejecute los dos comandos anteriores uno tras otro o puede agregarlos a un archivo por lotes). Los comandos anteriores crean un archivo dummy.txt de 1 MB en pocos segundos.Echa un vistazo a RDFC http://www.bertel.de/software/rdfc/index-en.html
RDFC probablemente no sea el más rápido, pero asigna bloques de datos. El más rápido tendría que usar API de nivel inferior para obtener cadenas de clúster y ponerlas en MFT sin escribir datos.
Tenga en cuenta que no hay una bala de plata aquí: si la "creación" regresa instantáneamente, eso significa que tiene un archivo disperso que simplemente falsifica un archivo grande, pero no obtendrá bloques / cadenas de datos hasta que escriba en él. Si acabas de leer, obtendrías ceros muy rápidos que podrían hacerte creer que tu disco de repente se volvió increíblemente rápido :-)
fuente
Verifique las herramientas del Kit de recursos de Windows Server 2003 . Hay una utilidad llamada Creatfil.
Es similar a mkfile en Solaris.
fuente
Necesitaba un archivo normal de 10 GB para probar, por lo que no pude usarlo
fsutil
porque crea archivos dispersos (gracias @ZXX).Quería crear un archivo de 10 GB, pero por alguna razón solo apareció como 4 GB, por lo que quería estar seguro y me detuve en 4 GB. Si realmente desea asegurarse de que su archivo será manejado adecuadamente por el sistema operativo y otras aplicaciones, deje de expandirlo a 1 GB.
fuente
rm
Es un comando Unix / Linux, mientras quedel
es un comando DOS / Windows? ...%i
pero en un archivo por lotes se usa el signo de porcentaje doble, como%%i
.@echo off
, así que obviamente es un.bat
. Por eso tenía signos de doble porcentaje.file-4gb.txt
antes de crearlo? ¿No resultaría eso un error? ¿Realmente querías crearfile-4gb.txt
en esa línea? O cambiar el nombre delfile-big.txt
archivo antiguo ? Esto no está claro, incluso para un archivo por lotes. Si desea cambiar el nombre, probablemente el comando que estaba buscando esren
. Al igualren file-big.txt file-4gb.txt
. Creo que confundiste eso conrm
.Abra el Administrador de tareas de Windows, encuentre el proceso más grande que esté ejecutando, haga clic derecho y haga clic en
Create dump file
.Esto creará un archivo relativo al tamaño del proceso en la memoria en su carpeta temporal.
Puede crear fácilmente un archivo de tamaño en gigabytes.
fuente
A falta de escribir una aplicación completa, los chicos de Python podemos lograr archivos de cualquier tamaño con cuatro líneas, el mismo fragmento en Windows y Linux (la
os.stat()
línea es solo un cheque):fuente
PowerShell one-liner para crear un archivo
C:\Temp
para llenar el disco C: dejando solo 10 MB:fuente
Utilizar:
fuente
int
? ¿Funcionará para un archivo de 5 GB? ¿Está limitado a 2 o 4 GB? Que el tercer parámetroSetFilePointer()
sea 0 sugiere que no funcionará para un archivo de 5 GB.Estaba buscando una forma de crear un archivo ficticio grande con asignación de espacio recientemente. Todas las soluciones se ven incómodas. Finalmente, acabo de iniciar la
DISKPART
utilidad en Windows (integrada desde Windows Vista):Donde MÁXIMO es el tamaño del archivo resultante, 20 GB aquí.
fuente
Encontré una excelente utilidad que es configurable en https://github.com/acch/genfiles .
Llena el archivo de destino con datos aleatorios, por lo que no hay problemas con los archivos dispersos, y para mis propósitos (probar algoritmos de compresión) proporciona un buen nivel de ruido blanco.
fuente
Los archivos temporales deben almacenarse en la carpeta temporal de Windows. Según la respuesta de Rod , puede usar el siguiente revestimiento para crear un archivo temporal de 5 GB que devuelve el nombre de archivo
Explicación:
[System.IO.Path]::GetTempFileName()
genera un nombre de archivo aleatorio con extensión aleatoria en la carpeta temporal de Windows[System.IO.File]::Create($_)
que crea el archivo.SetLength(5gb)
. Me sorprendió un poco descubrir que PowerShell admite la conversión de bytes , lo que es realmente útil..close
para permitir que otras aplicaciones accedan a él.;$_
el nombre de archivo se devuelve y| ? { $_ }
se garantiza que solo se devuelva el nombre de archivo y no la cadena vacía devuelta por[System.IO.File]::Create($_)
fuente
La forma más simple que he encontrado es esta utilidad gratuita: http://www.mynikko.com/dummy/
Crea archivos ficticios de tamaño arbitrario que se llenan con espacios o con contenido no comprimible (usted elige). Aquí hay una captura de pantalla:
fuente
Plain ol 'C ... esto se construye bajo MinGW GCC en Windows XX y debería funcionar en cualquier plataforma C' genérica '.
Genera un archivo nulo de un tamaño especificado. El archivo resultante NO es solo una entrada de directorio que ocupa el espacio, y de hecho ocupa el número especificado de bytes. Esto es rápido porque no se producen escrituras reales, excepto el byte escrito antes del cierre.
Mi instancia produce un archivo lleno de ceros; esto puede variar según la plataforma; este programa esencialmente configura la estructura de directorios para cualquier dato que esté rondando.
fuente
Encontré una solución usando DEBUG en http://www.scribd.com/doc/445750/Create-a-Huge-File , pero no conozco una manera fácil de escribirlo y parece que no puede para crear archivos de más de 1 GB.
fuente
... 1 MB de archivo dummy.txt en pocos segundos.
Ver aquí: http://www.windows-commandline.com/how-to-create-large-dummy-file/
fuente
Puede usar el comando cat powershell.
Primero cree un archivo de texto simple con algunos caracteres. Cuantos más caracteres iniciales ingreses, más rápido se hará más grande. Vamos a llamarlo.txt. Luego en Powershell:
Espere el tiempo que sea necesario para hacer el archivo lo suficientemente grande. Luego presione ctrl-c para finalizarlo.
fuente
Puedes probar este código C ++:
Tal vez tomará algún tiempo generarlo dependiendo de la velocidad de su CPU ...
fuente
Respuesta simple en Python: si necesita crear un archivo de texto real grande, simplemente utilicé un
while
bucle simple y pude crear un archivo de 5 GB en aproximadamente 20 segundos. Sé que es crudo, pero es lo suficientemente rápido.fuente
¿Rápido de ejecutar o rápido de escribir en un teclado? Si usa Python en Windows, puede intentar esto:
fuente
Otra solución GUI: WinHex.
Al contrario de algunas de las soluciones ya propuestas, en realidad escribe los datos (vacíos) en el dispositivo.
También permite llenar el nuevo archivo con un patrón seleccionable o datos aleatorios:
fuente
He hecho algunas adiciones al mismo
fsutil
método que se menciona en la respuesta elegida. Esto es para crear archivos de muchas extensiones diferentes y / o de varios tamaños.El código se puede clonar desde https://github.com/iamakidilam/bulkFileCreater.git
fuente