Быстро создать большой файл в системе Windows - PullRequest
230 голосов
/ 11 июня 2009

В том же духе, что и Быстрое создание большого файла в системе Linux , Я хотел бы быстро создать большой файл в системе Windows. По большому счету я думаю 5 ГБ. Содержание не имеет значения. Встроенная команда или короткий командный файл предпочтительнее, но я приму заявку, если нет других простых способов.

Ответы [ 21 ]

377 голосов
/ 12 июня 2009
fsutil file createnew <filename> <length>

где <length> в байтах.

fsutil требуются права администратора.

34 голосов
/ 11 июня 2009

Вы можете использовать инструмент Sysinternals Contig . Он имеет переключатель -n, который создает новый файл заданного размера. В отличие от fsutil, он не требует прав администратора.

23 голосов
/ 18 мая 2011

Я искал способ создания больших файлов с данными, а не только разреженных файлов. Наткнулся на нижеприведенную технику :

Если вы хотите создать файл с реальными данными, вы можете использовать приведенный ниже скрипт командной строки.

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

(Выполните две вышеуказанные команды одну за другой, или вы можете добавить их в командный файл.)

Приведенные выше команды создают файл dummy.txt размером 1 МБ в течение нескольких секунд ...

15 голосов
/ 21 декабря 2010

Проверить RDFC http://www.bertel.de/software/rdfc/index-en.html

RDFC, вероятно, не самый быстрый, но он выделяет блоки данных. Абсолютно быстрому пришлось бы использовать API нижнего уровня, чтобы просто получить цепочки кластеров и поместить их в MFT без записи данных.

Остерегайтесь того, что здесь нет серебряной пули - если «создание» возвращается мгновенно, это означает, что у вас есть разреженный файл, который просто подделывает большой файл, но вы не получите блоки данных / цепочки, пока не напишите в него. Если вы просто прочитаете, вы получите очень быстрые нули, которые могут заставить вас поверить, что ваш диск внезапно стал невероятно быстрым: -)

13 голосов
/ 11 июня 2009

Проверьте Средства Windows Server 2003 Resource Kit . Есть утилита под названием Creatfil.

 CREATFIL.EXE
 -? : This message
 -FileName -- name of the new file
 -FileSize -- size of file in KBytes, default is 1024 KBytes

Это похоже на mkfile на Solaris.

11 голосов
/ 25 мая 2012

Мне понадобился обычный файл 10 ГБ для тестирования, поэтому я не мог использовать fsutil, потому что он создает разреженные файлы (спасибо @ZXX).

@echo off

:: Create file with 2 bytes
echo.>file-big.txt

:: Expand to 1 KB
for /L %%i in (1, 1, 9) do type file-big.txt>>file-big.txt

:: Expand to 1 MB
for /L %%i in (1, 1, 10) do type file-big.txt>>file-big.txt

:: Expand to 1 GB
for /L %%i in (1, 1, 10) do type file-big.txt>>file-big.txt

:: Expand to 4 GB
del file-4gb.txt
for /L %%i in (1, 1, 4) do type file-big.txt>>file-4gb.txt

del file-big.txt

Я хотел создать файл размером 10 ГБ, но по какой-то причине он показывал только 4 ГБ, поэтому я хотел быть в безопасности и остановился на 4 ГБ. Если вы действительно хотите быть уверенным, что операционная система и другие приложения будут правильно обрабатывать ваш файл, прекратите расширять его до 1 ГБ.

6 голосов
/ 12 июня 2009

Использование:

/*
Creates an empty file, which can take all of the disk
space. Just specify the desired file size on the
command line.
*/

#include <windows.h>
#include <stdlib.h>

int main (int argc, char* ARGV[])
{
    int size;
    size = atoi(ARGV[1]);
    const char* full = "fulldisk.dsk";
    HANDLE hf = CreateFile(full,
                           GENERIC_WRITE,
                           0,
                           0,
                           CREATE_ALWAYS,
                           0,
                           0);
    SetFilePointer(hf, size, 0, FILE_BEGIN);
    SetEndOfFile(hf);
    CloseHandle(hf);
    return 0;
}
5 голосов
/ 28 апреля 2016

PowerShell в одну строку для создания файла в C:\Temp для заполнения диска C: осталось всего 10 МБ:

[io.file]::Create("C:\temp\bigblob.txt").SetLength((gwmi Win32_LogicalDisk -Filter "DeviceID='C:'").FreeSpace - 10MB).Close
5 голосов
/ 10 апреля 2016

Откройте диспетчер задач Windows, найдите самый большой процесс, который у вас запущен, щелкните правой кнопкой мыши и нажмите Create dump file.

Это создаст файл относительно размера процесса в памяти во временной папке.

Вы можете легко создать файл размером в гигабайты.

Enter image description here

Enter image description here

4 голосов
/ 25 июня 2012

Я нашел отличную утилиту, которую можно настроить на https://github.com/acch/genfiles.

Он заполняет целевой файл случайными данными, поэтому проблем с разреженными файлами нет, и для моих целей (тестирование алгоритмов сжатия) он дает хороший уровень белого шума.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...