Как создать файл большого размера windows

Создание файла произвольного размера в Windows

Иногда бывают ситуации, в которых требуется быстро создать один или несколько файлов произвольного размера. Операционная система Windows предлагает для этого несколько различных вариантов.

Создание файла с помощью fsutil

Быстрее и проще всего создать файл с помощью утилиты командной строки fsutil. Для примера откроем консоль (обязательно с правами администратора) и создадим на диске E файл file.txt размером 1ГБ командой:

fsutil file createnew E:File.txt 1000000000

Таким образом можно создать файл любого размера, причем файл создается практически мгновенно.

создание файла с помощью fsutil

Создание файла с помощью PowerShell

То же самое можно сделать с помощью PowerShell, хотя команды будут немного сложнее:

$file = New-Object -TypeName System.IO.FileStream -ArgumentList E:File.txt,Create,ReadWrite
$file.SetLength(1000Mb)
$file.Close()

Здесь мы сначала создаем объект типа файл, а затем с помощью метода SetLength присваиваем ему необходимый размер. Таким способом также можно мгновенно создать файл любого размера.

создание файла с помощью PowerShell, способ 1

Есть и еще один, альтернативный способ создания файла с помощью PowerShell. Если в первом случае мы создавали файл и задавали его размер, то здесь создаем содержимое нужного размера и помещаем это содержимое в указанный файл. Например:

$content = New-Object -TypeName Byte[] -ArgumentList 10Mb
Set-Content -Path E:File.txt -Value $content -Encoding Byte

создание файла с помощью PowerShell, способ 2

При использовании этого метода создание файла занимает некоторое время, зависящее от размера файла. Кроме того, с его помощью невозможно создать файл большого размера. Максимальный размер файла ограничен встроенным значением [int]::MaxValue и при его превышении будет выдана ошибка ″Array dimentions exceeded supported range″.

ошибка при создании файла

Все описанные  способы создают пустые файлы (точнее файлы, заполненные символом NUL). Если надо создать файл заданного размера и заполнить его каким либо произвольным содержимым, то можно немного изменить предыдущий способ и воспользоваться такими командами:

$array = New-Object -TypeName Byte[] -ArgumentList 10Mb
$obj = New-Object -TypeName System.Random
$obj.NextBytes($array)
Set-Content -Path E:File.txt -Value $array -Encoding Byte

создание файла и заполнение его данными

Ну и для генерации большого количества файлов (напр. 1000) можно воспользоваться таким скриптом:

$array = New-Object -TypeName Byte[] -ArgumentList 10Mb
$obj = New-Object -TypeName System.Random
$obj.NextBytes($array)
for ($i=1; $i -le 1000; $i++) {
Set-Content -Path E:File.txt$i -Value $array -Encoding Byte
}

Работает небыстро, но для ускорения можно запустить скрипт в несколько потоков.

В повседневной работе по той или иной причине системному администратору периодически приходится создавать файлы определенного размера. Обычно необходимость в создании файла определенного размера возникает при тестировании различных подсистем, например вы хотите протестировать работу дисковых квот или фильтров электронной почты. Самый простой способ создать файл определенного размера – воспользоваться Windows-утилитой fsutil.exe. Эта утилита командной строки, которую можно использовать для управления дисковыми квотами, различными манипуляциями с объектами файловой системы, а также для выполнения различных манипуляций с файлами.

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

fsutil file createnew C:10mb-file.txt 10000000

Эта команда создаст в корне диска C: новый файл с именем ’10mb-file.txt’, размером 10000000 байт (10 Мб).

In the same vein as Quickly create a large file on a Linux system,
I’d like to quickly create a large file on a Windows system. By large I’m thinking 5 GB. The content doesn’t matter. A built-in command or short batch file would be preferable, but I’ll accept an application if there are no other easy ways.

Peter Mortensen's user avatar

asked Jun 11, 2009 at 18:01

Leigh Riffel's user avatar

Leigh RiffelLeigh Riffel

6,2513 gold badges34 silver badges47 bronze badges

fsutil file createnew <filename> <length>

where <length> is in bytes.

For example, to create a 1MB (Windows MB or MiB) file named ‘test’, this code can be used.

fsutil file createnew test 1048576

fsutil requires administrative privileges though.

DxTx's user avatar

DxTx

2,9093 gold badges21 silver badges33 bronze badges

answered Jun 12, 2009 at 10:37

Patrick Cuff's user avatar

Patrick CuffPatrick Cuff

28.1k11 gold badges67 silver badges94 bronze badges

10

You can use the Sysinternals Contig tool. It has a -n switch which creates a new file of a given size. Unlike fsutil, it doesn’t require administrative privileges.

answered Jun 11, 2009 at 19:12

Joey's user avatar

6

I was searching for a way to generate large files with data, not just sparse file. Came across the below technique:

If you want to create a file with real data then you can use the below command line script.

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

(Run the above two commands one after another or you can add them to a batch file.)

The above commands create a 1 MB file dummy.txt within few seconds…

gnat's user avatar

gnat

6,215107 gold badges54 silver badges73 bronze badges

answered May 18, 2011 at 8:46

Giri's user avatar

GiriGiri

4925 silver badges9 bronze badges

2

I needed a regular 10 GB file for testing, so I couldn’t use fsutil because it creates sparse files (thanks @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

I wanted to create a 10 GB file, but for some reason it only showed up as 4 GB, so I wanted to be safe and stopped at 4 GB. If you really want to be sure your file will be handled properly by the operating system and other applications, stop expanding it at 1 GB.

answered May 25, 2012 at 12:51

f.ardelian's user avatar

f.ardelianf.ardelian

6,5267 gold badges35 silver badges51 bronze badges

7

Check out RDFC http://www.bertel.de/software/rdfc/index-en.html

RDFC is probably not the fastest, but it does allocate data blocks. The absolutely fastest would have to use lower level API to just obtain cluster chains and put them into MFT without writing data.

Beware that there’s no silver bullet here — if «creation» returns instantly that means you got a sparse file which just fakes a large file, but you won’t get data blocks/chains till you write into it. If you just read is you’d get very fast zeros which could make you believe that your drive all of the sudden got blazingly fast :-)

Peter Mortensen's user avatar

answered Dec 21, 2010 at 20:36

ZXX's user avatar

ZXXZXX

4,65426 silver badges35 bronze badges

2

Open up Windows Task Manager, find the biggest process you have running right click, and click on Create dump file.

This will create a file relative to the size of the process in memory in your temporary folder.

You can easily create a file sized in gigabytes.

Enter image description here

Enter image description here

Peter Mortensen's user avatar

answered Apr 10, 2016 at 4:23

shenku's user avatar

shenkushenku

11.6k11 gold badges62 silver badges117 bronze badges

1

Check the Windows Server 2003 Resource Kit Tools. There is a utility called Creatfil.

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

It is the similar to mkfile on Solaris.

Samir's user avatar

Samir

1,1631 gold badge17 silver badges27 bronze badges

answered Jun 11, 2009 at 18:06

Byron Whitlock's user avatar

Byron WhitlockByron Whitlock

52.1k28 gold badges123 silver badges167 bronze badges

7

I was looking for a way to create a large dummy file with space allocation recently. All of the solutions look awkward. Finally I just started the DISKPART utility in Windows (embedded since Windows Vista):

DISKPART
CREATE VDISK FILE="C:test.vhd" MAXIMUM=20000 TYPE=FIXED

Where MAXIMUM is the resulting file size, 20 GB here.

Peter Mortensen's user avatar

answered Jul 7, 2016 at 12:55

chersun's user avatar

chersunchersun

1652 silver badges7 bronze badges

3

PowerShell one-liner to create a file in C:Temp to fill disk C: leaving only 10 MB:

[io.file]::Create("C:tempbigblob.txt").SetLength((gwmi Win32_LogicalDisk -Filter "DeviceID='C:'").FreeSpace - 10MB).Close

Peter Mortensen's user avatar

answered Apr 28, 2016 at 6:27

Rod's user avatar

RodRod

1,40315 silver badges17 bronze badges

2

Short of writing a full application, us Python guys can achieve files of any size with four lines, same snippet on Windows and Linux (the os.stat() line is just a check):

>>> f = open('myfile.txt','w')
>>> f.seek(1024-1) # an example, pick any size
>>> f.write('x00')
>>> f.close()
>>> os.stat('myfile.txt').st_size
1024L
>>>

Peter Mortensen's user avatar

answered Jun 11, 2009 at 18:20

gimel's user avatar

gimelgimel

81.7k10 gold badges75 silver badges104 bronze badges

3

Use:

/*
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;
}

phuclv's user avatar

phuclv

36k13 gold badges147 silver badges456 bronze badges

answered Jun 11, 2009 at 23:51

lkurts's user avatar

lkurtslkurts

3882 silver badges6 bronze badges

1

The simplest way I’ve found is this free utility: http://www.mynikko.com/dummy/

Creates dummy files of arbitrary size that are either filled with spaces or are filled with non-compressible content (your choice). Here’s a screenshot:

enter image description here

answered Dec 30, 2018 at 14:23

yosh m's user avatar

yosh myosh m

1633 bronze badges

I found an excellent utility that is configurable at https://github.com/acch/genfiles.

It fills the target file with random data, so there are no problems with sparse files, and for my purposes (testing compression algorithms) it gives a nice level of white noise.

yosh m's user avatar

answered Jun 25, 2012 at 18:41

MusikPolice's user avatar

MusikPoliceMusikPolice

1,6294 gold badges19 silver badges38 bronze badges

3

Temp files should be stored in the Windows Temp Folder. Based on the answer from Rod you can use the following one liner to create a 5 GB temp file which returns the filename

[System.IO.Path]::GetTempFileName() | % { [System.IO.File]::Create($_).SetLength(5gb).Close;$_ } | ? { $_ }

Explanation:

  • [System.IO.Path]::GetTempFileName() generates a random filename with random extension in the Windows Temp Folder
  • The Pipeline is used to pass the name to [System.IO.File]::Create($_) which creates the file
  • The file name is set to the newly created file with .SetLength(5gb). I was a bit surprised to discover, that PowerShell supports Byte Conversion, which is really helpful.
  • The file handle needs to be closed with .close to allow other applications to access it
  • With ;$_ the filename is returned and with | ? { $_ } it is ensured that only the filename is returned and not the empty string returned by [System.IO.File]::Create($_)

Community's user avatar

answered Feb 2, 2017 at 11:18

Florian Feldhaus's user avatar

Florian FeldhausFlorian Feldhaus

5,4122 gold badges39 silver badges45 bronze badges

Plain ol’ C… this builds under MinGW GCC on Windows XX and should work
on any ‘generic’ C platform.

It generates a null file of a specified size. The resultant file is NOT just a directory space-occupier entry, and in fact occupies the specified number of bytes. This is fast because no actual writes occur except for the byte written before close.

My instance produces a file full of zeros — this could vary by platform; this
program essentially sets up the directory structure for whatever data is hanging
around.

#include <stdio.h>
#include <stdlib.h>

FILE *file;

int main(int argc, char **argv)
{
    unsigned long  size;

    if(argc!=3)
    {
        printf("Error ... syntax: Fillerfile  size  Fname nn");
        exit(1);
    }

    size = atoi(&*argv[1]);

    printf("Creating %d byte file '%s'...n", size, &*argv[2]);

    if(!(file = fopen(&*argv[2], "w+")))
    {
        printf("Error opening file %s!nn", &*argv[2]);
        exit(1);
    }

    fseek(file, size-1, SEEK_SET);
    fprintf(file, "%c", 0x00);
    fclose(file);
}

phuclv's user avatar

phuclv

36k13 gold badges147 silver badges456 bronze badges

answered Aug 10, 2012 at 21:23

Bill W's user avatar

1

You can try this C++ code:

#include<stdlib.h>
#include<iostream>
#include<conio.h>
#include<fstream>
#using namespace std;

int main()
{
    int a;
    ofstream fcout ("big_file.txt");
    for(;;a += 1999999999){
        do{
            fcout << a;
        }
        while(!a);
    }
}

Maybe it will take some time to generate depending on your CPU speed…

phuclv's user avatar

phuclv

36k13 gold badges147 silver badges456 bronze badges

answered Apr 5, 2013 at 18:40

NEt_Bomber's user avatar

1

You can use the cat powershell command.

First create a simple text file with a few characters. The more initial chars you enter, the quicker it becomes larger. Let’s call it out.txt. Then in Powershell:

cat out.txt >> out.txt

Wait as long as it’s necessary to make the file big enough. Then hit ctrl-c to end it.

answered Oct 12, 2019 at 11:50

Meghdad's user avatar

MeghdadMeghdad

1711 silver badge9 bronze badges

2

Quick to execute or quick to type on a keyboard? If you use Python on Windows, you can try this:

cmd /k py -3 -c "with open(r'C:UsersLRiffelBigFile.bin', 'wb') as file: file.truncate(5 * 1 << 30)"

answered Nov 21, 2017 at 15:05

Noctis Skytower's user avatar

Noctis SkytowerNoctis Skytower

21k16 gold badges81 silver badges116 bronze badges

Simple answer in Python: If you need to create a large real text file I just used a simple while loop and was able to create a 5 GB file in about 20 seconds. I know it’s crude, but it is fast enough.

outfile = open("outfile.log", "a+")

def write(outfile):
    outfile.write("hello world hello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello world"+"n")
    return

i=0
while i < 1000000:
    write(outfile)
    i += 1
outfile.close()

phuclv's user avatar

phuclv

36k13 gold badges147 silver badges456 bronze badges

answered Apr 24, 2014 at 21:41

jkdba's user avatar

jkdbajkdba

2,2383 gold badges21 silver badges32 bronze badges

Another GUI solution : WinHex.

“File” > “New” > “Desired file size” = [X]
“File” > “Save as” = [Name]

Contrary to some of the already proposed solutions, it actually writes the (empty) data on the device.

It also allows to fill the new file with a selectable pattern or random data :

“Edit” > “Fill file” (or “Fill block” if a block is selected)

answered Jul 15, 2019 at 16:14

GabrielB's user avatar

I’ve made some additions to the same fsutil method as mentioned in the chosen answer.
This is to create files of many different extensions and/or of various sizes.

set file_list=avi bmp doc docm docx eps gif jpeg jpg key m4v mov mp4 mpg msg nsf odt pdf png pps ppsx ppt pptx rar rtf tif tiff txt wmv xls xlsb xlsm xlsx xps zip 7z
set file_size= 1
for %%f in (%file_list%) do (
fsutil file createnew valid_%%f.%%f %file_size%
) > xxlogs.txt

The code can be cloned from https://github.com/iamakidilam/bulkFileCreater.git

answered Jul 9, 2018 at 14:07

Alan Pallath's user avatar

In the same vein as Quickly create a large file on a Linux system,
I’d like to quickly create a large file on a Windows system. By large I’m thinking 5 GB. The content doesn’t matter. A built-in command or short batch file would be preferable, but I’ll accept an application if there are no other easy ways.

Peter Mortensen's user avatar

asked Jun 11, 2009 at 18:01

Leigh Riffel's user avatar

Leigh RiffelLeigh Riffel

6,2513 gold badges34 silver badges47 bronze badges

fsutil file createnew <filename> <length>

where <length> is in bytes.

For example, to create a 1MB (Windows MB or MiB) file named ‘test’, this code can be used.

fsutil file createnew test 1048576

fsutil requires administrative privileges though.

DxTx's user avatar

DxTx

2,9093 gold badges21 silver badges33 bronze badges

answered Jun 12, 2009 at 10:37

Patrick Cuff's user avatar

Patrick CuffPatrick Cuff

28.1k11 gold badges67 silver badges94 bronze badges

10

You can use the Sysinternals Contig tool. It has a -n switch which creates a new file of a given size. Unlike fsutil, it doesn’t require administrative privileges.

answered Jun 11, 2009 at 19:12

Joey's user avatar

6

I was searching for a way to generate large files with data, not just sparse file. Came across the below technique:

If you want to create a file with real data then you can use the below command line script.

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

(Run the above two commands one after another or you can add them to a batch file.)

The above commands create a 1 MB file dummy.txt within few seconds…

gnat's user avatar

gnat

6,215107 gold badges54 silver badges73 bronze badges

answered May 18, 2011 at 8:46

Giri's user avatar

GiriGiri

4925 silver badges9 bronze badges

2

I needed a regular 10 GB file for testing, so I couldn’t use fsutil because it creates sparse files (thanks @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

I wanted to create a 10 GB file, but for some reason it only showed up as 4 GB, so I wanted to be safe and stopped at 4 GB. If you really want to be sure your file will be handled properly by the operating system and other applications, stop expanding it at 1 GB.

answered May 25, 2012 at 12:51

f.ardelian's user avatar

f.ardelianf.ardelian

6,5267 gold badges35 silver badges51 bronze badges

7

Check out RDFC http://www.bertel.de/software/rdfc/index-en.html

RDFC is probably not the fastest, but it does allocate data blocks. The absolutely fastest would have to use lower level API to just obtain cluster chains and put them into MFT without writing data.

Beware that there’s no silver bullet here — if «creation» returns instantly that means you got a sparse file which just fakes a large file, but you won’t get data blocks/chains till you write into it. If you just read is you’d get very fast zeros which could make you believe that your drive all of the sudden got blazingly fast :-)

Peter Mortensen's user avatar

answered Dec 21, 2010 at 20:36

ZXX's user avatar

ZXXZXX

4,65426 silver badges35 bronze badges

2

Open up Windows Task Manager, find the biggest process you have running right click, and click on Create dump file.

This will create a file relative to the size of the process in memory in your temporary folder.

You can easily create a file sized in gigabytes.

Enter image description here

Enter image description here

Peter Mortensen's user avatar

answered Apr 10, 2016 at 4:23

shenku's user avatar

shenkushenku

11.6k11 gold badges62 silver badges117 bronze badges

1

Check the Windows Server 2003 Resource Kit Tools. There is a utility called Creatfil.

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

It is the similar to mkfile on Solaris.

Samir's user avatar

Samir

1,1631 gold badge17 silver badges27 bronze badges

answered Jun 11, 2009 at 18:06

Byron Whitlock's user avatar

Byron WhitlockByron Whitlock

52.1k28 gold badges123 silver badges167 bronze badges

7

I was looking for a way to create a large dummy file with space allocation recently. All of the solutions look awkward. Finally I just started the DISKPART utility in Windows (embedded since Windows Vista):

DISKPART
CREATE VDISK FILE="C:test.vhd" MAXIMUM=20000 TYPE=FIXED

Where MAXIMUM is the resulting file size, 20 GB here.

Peter Mortensen's user avatar

answered Jul 7, 2016 at 12:55

chersun's user avatar

chersunchersun

1652 silver badges7 bronze badges

3

PowerShell one-liner to create a file in C:Temp to fill disk C: leaving only 10 MB:

[io.file]::Create("C:tempbigblob.txt").SetLength((gwmi Win32_LogicalDisk -Filter "DeviceID='C:'").FreeSpace - 10MB).Close

Peter Mortensen's user avatar

answered Apr 28, 2016 at 6:27

Rod's user avatar

RodRod

1,40315 silver badges17 bronze badges

2

Short of writing a full application, us Python guys can achieve files of any size with four lines, same snippet on Windows and Linux (the os.stat() line is just a check):

>>> f = open('myfile.txt','w')
>>> f.seek(1024-1) # an example, pick any size
>>> f.write('x00')
>>> f.close()
>>> os.stat('myfile.txt').st_size
1024L
>>>

Peter Mortensen's user avatar

answered Jun 11, 2009 at 18:20

gimel's user avatar

gimelgimel

81.7k10 gold badges75 silver badges104 bronze badges

3

Use:

/*
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;
}

phuclv's user avatar

phuclv

36k13 gold badges147 silver badges456 bronze badges

answered Jun 11, 2009 at 23:51

lkurts's user avatar

lkurtslkurts

3882 silver badges6 bronze badges

1

The simplest way I’ve found is this free utility: http://www.mynikko.com/dummy/

Creates dummy files of arbitrary size that are either filled with spaces or are filled with non-compressible content (your choice). Here’s a screenshot:

enter image description here

answered Dec 30, 2018 at 14:23

yosh m's user avatar

yosh myosh m

1633 bronze badges

I found an excellent utility that is configurable at https://github.com/acch/genfiles.

It fills the target file with random data, so there are no problems with sparse files, and for my purposes (testing compression algorithms) it gives a nice level of white noise.

yosh m's user avatar

answered Jun 25, 2012 at 18:41

MusikPolice's user avatar

MusikPoliceMusikPolice

1,6294 gold badges19 silver badges38 bronze badges

3

Temp files should be stored in the Windows Temp Folder. Based on the answer from Rod you can use the following one liner to create a 5 GB temp file which returns the filename

[System.IO.Path]::GetTempFileName() | % { [System.IO.File]::Create($_).SetLength(5gb).Close;$_ } | ? { $_ }

Explanation:

  • [System.IO.Path]::GetTempFileName() generates a random filename with random extension in the Windows Temp Folder
  • The Pipeline is used to pass the name to [System.IO.File]::Create($_) which creates the file
  • The file name is set to the newly created file with .SetLength(5gb). I was a bit surprised to discover, that PowerShell supports Byte Conversion, which is really helpful.
  • The file handle needs to be closed with .close to allow other applications to access it
  • With ;$_ the filename is returned and with | ? { $_ } it is ensured that only the filename is returned and not the empty string returned by [System.IO.File]::Create($_)

Community's user avatar

answered Feb 2, 2017 at 11:18

Florian Feldhaus's user avatar

Florian FeldhausFlorian Feldhaus

5,4122 gold badges39 silver badges45 bronze badges

Plain ol’ C… this builds under MinGW GCC on Windows XX and should work
on any ‘generic’ C platform.

It generates a null file of a specified size. The resultant file is NOT just a directory space-occupier entry, and in fact occupies the specified number of bytes. This is fast because no actual writes occur except for the byte written before close.

My instance produces a file full of zeros — this could vary by platform; this
program essentially sets up the directory structure for whatever data is hanging
around.

#include <stdio.h>
#include <stdlib.h>

FILE *file;

int main(int argc, char **argv)
{
    unsigned long  size;

    if(argc!=3)
    {
        printf("Error ... syntax: Fillerfile  size  Fname nn");
        exit(1);
    }

    size = atoi(&*argv[1]);

    printf("Creating %d byte file '%s'...n", size, &*argv[2]);

    if(!(file = fopen(&*argv[2], "w+")))
    {
        printf("Error opening file %s!nn", &*argv[2]);
        exit(1);
    }

    fseek(file, size-1, SEEK_SET);
    fprintf(file, "%c", 0x00);
    fclose(file);
}

phuclv's user avatar

phuclv

36k13 gold badges147 silver badges456 bronze badges

answered Aug 10, 2012 at 21:23

Bill W's user avatar

1

You can try this C++ code:

#include<stdlib.h>
#include<iostream>
#include<conio.h>
#include<fstream>
#using namespace std;

int main()
{
    int a;
    ofstream fcout ("big_file.txt");
    for(;;a += 1999999999){
        do{
            fcout << a;
        }
        while(!a);
    }
}

Maybe it will take some time to generate depending on your CPU speed…

phuclv's user avatar

phuclv

36k13 gold badges147 silver badges456 bronze badges

answered Apr 5, 2013 at 18:40

NEt_Bomber's user avatar

1

You can use the cat powershell command.

First create a simple text file with a few characters. The more initial chars you enter, the quicker it becomes larger. Let’s call it out.txt. Then in Powershell:

cat out.txt >> out.txt

Wait as long as it’s necessary to make the file big enough. Then hit ctrl-c to end it.

answered Oct 12, 2019 at 11:50

Meghdad's user avatar

MeghdadMeghdad

1711 silver badge9 bronze badges

2

Quick to execute or quick to type on a keyboard? If you use Python on Windows, you can try this:

cmd /k py -3 -c "with open(r'C:UsersLRiffelBigFile.bin', 'wb') as file: file.truncate(5 * 1 << 30)"

answered Nov 21, 2017 at 15:05

Noctis Skytower's user avatar

Noctis SkytowerNoctis Skytower

21k16 gold badges81 silver badges116 bronze badges

Simple answer in Python: If you need to create a large real text file I just used a simple while loop and was able to create a 5 GB file in about 20 seconds. I know it’s crude, but it is fast enough.

outfile = open("outfile.log", "a+")

def write(outfile):
    outfile.write("hello world hello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello world"+"n")
    return

i=0
while i < 1000000:
    write(outfile)
    i += 1
outfile.close()

phuclv's user avatar

phuclv

36k13 gold badges147 silver badges456 bronze badges

answered Apr 24, 2014 at 21:41

jkdba's user avatar

jkdbajkdba

2,2383 gold badges21 silver badges32 bronze badges

Another GUI solution : WinHex.

“File” > “New” > “Desired file size” = [X]
“File” > “Save as” = [Name]

Contrary to some of the already proposed solutions, it actually writes the (empty) data on the device.

It also allows to fill the new file with a selectable pattern or random data :

“Edit” > “Fill file” (or “Fill block” if a block is selected)

answered Jul 15, 2019 at 16:14

GabrielB's user avatar

I’ve made some additions to the same fsutil method as mentioned in the chosen answer.
This is to create files of many different extensions and/or of various sizes.

set file_list=avi bmp doc docm docx eps gif jpeg jpg key m4v mov mp4 mpg msg nsf odt pdf png pps ppsx ppt pptx rar rtf tif tiff txt wmv xls xlsb xlsm xlsx xps zip 7z
set file_size= 1
for %%f in (%file_list%) do (
fsutil file createnew valid_%%f.%%f %file_size%
) > xxlogs.txt

The code can be cloned from https://github.com/iamakidilam/bulkFileCreater.git

answered Jul 9, 2018 at 14:07

Alan Pallath's user avatar

Команда fsutil позволяет создавать файлы указанного размера в среде Windows. Как это сделать и для чего можно использовать.

Это, конечно, не то, что вы делаете каждый день, но в некоторых случаях может быть полезно создать большой файл в среде Windows.

Подобный файл можно использовать для проверки наличия сбойных секторов на жестком диске, для проверки поведения утилит восстановления файлов (например, чтобы убедиться, что файлы, удаленные с помощью процедур очистки, не могут быть восстановлены), для проверки производительности сети. соединение (локально и по WAN) при передаче больших предметов, для выяснения поведения Windows и других утилит в случае, если доступное место вдруг уменьшится и так далее.

Команда, которая позволяет создавать большие файлы в Windows, оказывается очень полезным приемом как для опытных пользователей, так и для разработчиков.

Создать большой файл в Windows очень просто: достаточно открыть командную строку, набрав cmd в поле поиска, перейти в папку, в которой вы хотите сгенерировать файл (пример cd%userprofile%Desktop), затем ввести следующую команду.

файл fsutil создать новый тестовый файл 100000000

В нашем примере мы создадим файл размером 100 МБ в папке, где вы находитесь, дав ему имя testfile (в данном случае без расширения).

Как создать большой файл в Windows

Чтобы создать большой файл в другой папке по вашему выбору, просто укажите ее при необходимости:

файл fsutil createnew c:temptestfile 100000000

Размер файла, очевидно, настраивается по вашему вкусу: вы также можете создавать файлы размером в десятки гигабайт.

Созданный файл на самом деле пустой (англоязычные называют его фиктивным файлом): попытавшись открыть его обычным шестнадцатеричным редактором, вы заметите только наличие нулей.

Как создать большой файл в Windows

Пространство, занимаемое на диске, будь то жесткий диск, SSD или внешняя флешка, все еще реально настолько, что доступное место будет резко уменьшаться, создавая очень большие файлы. Просто проверьте это, открыв окно «Этот компьютер с Windows».

Если щелкнуть правой кнопкой мыши файл, созданный с помощью команды fsutil, и выбрать «Свойства», размер, указанный Windows, будет меньше, чем установленный ранее. Например, для файла размером 100 МБ на диске будет занято примерно 95,3 МБ.

Как создать большой файл в Windows

Это происходит из-за того, что единицей измерения, используемой Windows, является не мегабайт, а мебибайт и связанные с ним кратные и дольные единицы, определенные Международной электротехнической комиссией (МЭК) в декабре 1998 года. Мы объяснили это в статье Жесткий диск и твердотельный накопитель. , размеры не совпадают с заявленными производителем.

Поэтому, чтобы сгенерировать файл размером ровно 100 МБ в Windows, вам нужно будет использовать следующую команду:
файл fsutil создать новый тестовый файл 104857600

Как создать большой файл в Windows

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

Как создать файл определенного размера в Windows?

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

Возможность создать файл заданного размера в Windows есть, реализуется она через командную строку.

fsutil — это консольная утилита для управления объектами файловой системы.

file — это параметр утилиты fsutil, работающий с файлами

createnew — это, как нетрудно догадаться, параметр, создающий новый объект на диске

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

Быстро создать большой файл в системе Windows

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

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

fsutil требует административных привилегий, хотя.

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

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

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

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

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

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

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

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

BigByte – создать файл заданного размера

Утилита BigByte может создавать файлы нужных размеров. Позволяет создавать двоичные или ascii файлы, заполненные нулями. В окне ввода имени вводим имя создаваемого файла, далее выбираем его размер и тип (binary или ascii), и нажимаем кнопку создать. Файл формируется в той же директории, где и расположена сама программа.

Таким образом, создание пустого файла определенного размера будет для Вас не проблема.

Содержание

  1. Как в Windows создать файл строго заданного размера
  2. Как создать файл любого размера и любого формата?
  3. Как это работает?
  4. ОТСТУПЛЕНИЕ
  5. Как создать файл любого размера: что умеет сама Windows?
  6. Быстрое создание большого файла в системе Windows
  7. 20 ответов:
  8. Создаем файл определенного размера в Windows
  9. Создание файла с помощью fsutil
  10. Создаем файл с помощью PowerShell
  11. Как создать файл произвольного размера
  12. Создание файла с помощью fsutil
  13. Создание файла с помощью PowerShell

Как в Windows создать файл строго заданного размера

П ри тестировании разного рода подсистем нередко приходится создавать файлы определённого объёма. Например, это может понадобиться при проверке работы почтовых или каких-либо других фильтров, в которых применяется ограничение на объём передаваемых данных, а также при тестировании дисковых квот. Конечно, для этих целей можно использовать массив, скажем, из текстовых файлов, но это неудобно, да и точности добиться в таком случае будет очень сложно.

Так вот, в Windows есть специальная консольная утилита, которая позволяет создавать файлы определённого размера. Называется она fsutil.exe . Допустим, вам нужно создать файл размером 10 Мб. Откройте командную строку от имени администратора и выполните в ней вот такую команду:


В результате выполнения команды в корне диска D будет создан файл test10mb.txt размером 10485760 байт или 10 Мб. Это будет не совсем обычный текстовый файл и если вы его откроете в Notepad++ или шестнадцатеричном редакторе, то увидите, что он полностью заполнен нулевыми значениями. Кстати, вместо расширения TXT можно использовать BIN — результат будет тот же.

Как создать файл любого размера и любого формата?

Как создать файл любого размера в любом формате?

Привет читателям блога Компьютер76, сегодня мы попробуем один трюк, с помощью которого можно потроллить соседей по офису, подшутить над друзьями и просто позабавиться на реакцию пользователя, который вдруг обнаружит, что…

В Windows вдруг появился файл, который занимает громадное пространство и даёт системе нормально функционировать. С помощью этого трюка можно в один момент заполнить всё свободное пространство, например, флешки.

Как это работает?

Если вы не впервые на страницах моего сайта, вы поняли, что в Windows много скрытых инструментов, о которых сама Windows ни одному пользователю предпочитает не рассказывать. Одна из таких бесчисленных встроенных утилит Fsutil.exe. Её основное предназначение – системные операции с файлами из командной строки. Она-то и поможет нам создать файл любого размера с любым понравившимся нам расширением. Да, нас снова понадобится консоль команд (работаем с правами админа). В Windows XP её не ищите – утилита входит в комплект Windows со времён Vista.

ОТСТУПЛЕНИЕ

Такие приколы могут создаваться и программами сторонних разрабов. Мне известны утилиты типа Dummy File Creator или Disk tools toolkit. Также, это умеет делать троян, поглощающий всё свободное пространство диска, маскируясь под антивирус.

Как создать файл любого размера: что умеет сама Windows?

Синтаксис нашей команды в утилите fsutil на создание файла выглядит так:

Отсюда следует, если мы хотим создать текстовый файл в корне системного диска размером 1 Кб (в байтах) и именем TEST, нам придётся в консоли написать командой:

Как вы догадались, можно создать файл любого размера и в любом формате в ЛЮБОМ месте, где бы вы не пожелали. Если файл нужен конкретных размеров, а его размер имеет для вас значение, лучше, конечно, воспользоваться конвертером единиц для перевода байт в кило-, мега– и гигабайты.

Итак, наш файл, конечно, пустой и не несёт никакого в себе содержания. Присвойте ему любое расширение – он же всё равно пуст. Текстовый файл, к примеру, можно заполнить произвольным текстом, в том числе из той же fsutil. Зачем? Дело в том, что, например, текстовый файл огромных размеров, заполненный информацией, при открытии немедленно вызовет как минимум зависание программы, с помощью которой жертва попытается этот документ открыть: Блокнот или ещё что… Но согласитесь, заполнять текстовый документ осмысленным содержанием через командную строку – всё равно что чесать пятку через штанину.

Ну и дополнить издевательство над пользователем можно присвоив документу (или фильму, фотографии, музыкальному треку) атрибут Скрытый. И если у жертвы в Свойствах папки не стоит Отображать скрытые файлы и папки, он потратит много времени на поиски того, куда подевалось пространство на диске. Так, созданный файл можно спрятать прямо сейчас, не закрывая консоли. Допишите вторую команду в виде:

Быстрое создание большого файла в системе Windows

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

20 ответов:

fsutil хотя требует административных привилегий.

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

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

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

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

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

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

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

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

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

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

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

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

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

PowerShell one-liner для создания файла в C:Temp заполнить диск C:, оставив только 10 МБ:

за исключением написания полного приложения, ребята из США Python могут создавать файлы любого размера с четырьмя строками, один и тот же фрагмент в Windows и Linux ( os.stat() строка — это просто проверка):

обычный ol ‘ C. это строит под MinGW GCC на Windows XX и должно работать на любой универсальная платформа с.

Он генерирует нулевой файл заданного размера. Результирующий файл не просто занимает место в каталоге, а фактически занимает указанное количество байтов. Это происходит быстро, потому что фактические записи не происходят, за исключением байта, записанного перед закрытием.

мой экземпляр создает файл полные нули — это может варьироваться в зависимости от платформы; это программа по существу устанавливает вверх по структуре каталогов для любых данных висит вокруг.

Я нашел решение с помощью DEBUG at http://www.scribd.com/doc/445750/Create-a-Huge-File, но я не знаю простого способа его написания, и он, похоже, не может создавать файлы размером более 1 ГБ.

. 1 MB файл пустышка.txt, в течение нескольких секунд.

временные файлы должны храниться в папке Windows Temp. На основе ответ от штанги вы можете использовать следующий лайнер для создания 5 ГБ временного файла, который возвращает имя файла

  • [System.IO.Path]::GetTempFileName() генерирует случайное имя файла со случайным расширением в папке Temp Windows
  • конвейер используется для передачи имени [System.IO.File]::Create($_) который создает файл
  • имя файла имеет значение недавно созданный файл с .SetLength(5gb) . Я был немного удивлен, обнаружив, что PowerShell поддерживает Байт Преобразования, что очень полезно.
  • дескриптор файла должен быть закрыт с .close чтобы другие приложения могли получить к нему доступ
  • С ;$_ имя файла возвращается и с | ? < $_ >гарантируется, что возвращается только имя файла, а не пустая строка, возвращаемая [System.IO.File]::Create($_)

недавно я искал способ создать большой фиктивный файл с выделением пространства. Все решения выглядят неловко. Наконец — то я только начал DISKPART утилита в Windows (встроенная с Windows Vista):

здесь максимум — это результирующий размер файла, 20 ГБ здесь.

простой ответ на Python: если вам нужно создать большой настоящий текстовый файл, я просто использовал простой while цикл и смог создать файл 5 ГБ примерно за 20 секунд. Я знаю, что это грубо, но это достаточно быстро.

вы можете попробовать этот код на C++:

возможно, потребуется некоторое время для генерации в зависимости от скорости вашего процессора.

быстро выполнить или быстро ввести на клавиатуре? Если вы используете Python на Windows, вы можете попробовать это:

Я сделал некоторые дополнения к тому же fsutil метод, как указано в выбранном ответе. Это делается для создания файлов различных расширений и / или различных размеров.

Создаем файл определенного размера в Windows

Создаем файл. Иногда может потребоваться создать для тестирования какой-то системы файл определенного размера. Операционная система ОС Windows предлагает два пути решения.

Создание файла с помощью fsutil

Быстрее и проще всего создать файл с помощью утилиты командной строки fsutil. Для примера откроем консоль (обязательно с правами администратора) и создадим на диске E файл file.txt размером 1ГБ командой:

Таким образом можно создать файл любого размера, причем файл создается практически мгновенно.

Создание файла с помощью fsutil

Создаем файл с помощью PowerShell

То же самое можно сделать с помощью PowerShell, хотя команды будут немного сложнее:

Здесь мы сначала создаем объект типа файл, а затем с помощью метода SetLength присваиваем ему необходимый размер. Таким способом также можно мгновенно создать файл любого размера. Полезная статья по PowerShell.

Есть и еще один, альтернативный способ создания файла с помощью PowerShell. Если в первом случае мы создавали файл и задавали его размер, то здесь создаем содержимое нужного размера и помещаем это содержимое в указанный файл. Например:

При использовании этого метода создание файла занимает некоторое время, зависящее от размера файла. Кроме того, с его помощью невозможно создать файл большого размера. Максимальный размер файла ограничен встроенным значением [int]::MaxValue и при его превышении будет выдана ошибка ″Array dimentions exceeded supported range″.

Все описанные способы создают пустые файлы (точнее файлы, заполненные символом NUL). Если надо создать файл заданного размера и заполнить его каким либо произвольным содержимым, то можно немного изменить предыдущий способ и воспользоваться такими командами:

Как создать файл произвольного размера

Иногда бывают ситуации, в которых требуется быстро создать один или несколько файлов произвольного размера. Операционная система Windows предлагает для этого несколько различных вариантов.

Создание файла с помощью fsutil

Быстрее и проще всего создать файл с помощью утилиты командной строки fsutil. Для примера откроем консоль (обязательно с правами администратора) и создадим на диске E файл file.txt размером 1ГБ командой:

fsutil file createnew E:File.txt 1000000000

Таким образом можно создать файл любого размера, причем файл создается практически мгновенно.

Создание файла с помощью PowerShell

То же самое можно сделать с помощью PowerShell, хотя команды будут немного сложнее:

$file = New-Object -TypeName System.IO.FileStream -ArgumentList E:File.txt,Create,ReadWrite
$file.SetLength(1000Mb)
$file.Close()

Здесь мы сначала создаем объект типа файл, а затем с помощью метода SetLength присваиваем ему необходимый размер. Таким способом также можно мгновенно создать файл любого размера.

Есть и еще один, альтернативный способ создания файла с помощью PowerShell. Если в первом случае мы создавали файл и задавали его размер, то здесь создаем содержимое нужного размера и помещаем это содержимое в указанный файл. Например:

$content = New-Object -TypeName Byte[] -ArgumentList 10Mb
Set-Content -Path E:File.txt -Value $content -Encoding Byte

При использовании этого метода создание файла занимает некоторое время, зависящее от размера файла. Кроме того, с его помощью невозможно создать файл большого размера. Максимальный размер файла ограничен встроенным значением [int]::MaxValue и при его превышении будет выдана ошибка ″Array dimentions exceeded supported range″.

Все описанные способы создают пустые файлы (точнее файлы, заполненные символом NUL). Если надо создать файл заданного размера и заполнить его каким либо произвольным содержимым, то можно немного изменить предыдущий способ и воспользоваться такими командами:

$array = New-Object -TypeName Byte[] -ArgumentList 10Mb
$obj = New-Object -TypeName System.Random
$obj.NextBytes($array)
Set-Content -Path E:File.txt -Value $array -Encoding Byte

Ну и для генерации большого количества файлов (напр. 1000) можно воспользоваться таким скриптом:

$array = New-Object -TypeName Byte[] -ArgumentList 10Mb
$obj = New-Object -TypeName System.Random
$obj.NextBytes($array)
for ($i=1; $i -le 1000; $i++) <
Set-Content -Path E:File.txt$i -Value $array -Encoding Byte
>

Работает небыстро, но для ускорения можно запустить скрипт в несколько потоков.

При тестировании разного рода подсистем нередко приходится создавать файлы определённого объёма. Например, это может понадобиться при проверке работы почтовых или каких-либо других фильтров, в которых применяется ограничение на объём передаваемых данных, а также при тестировании дисковых квот. Конечно, для этих целей можно использовать массив, скажем, из текстовых файлов, но это неудобно, да и точности добиться в таком случае будет очень сложно.

Так вот, в Windows есть специальная консольная утилита, которая позволяет создавать файлы определённого размера. Называется она fsutil.exe. Допустим, вам нужно создать файл размером 10 Мб. Откройте командную строку от имени администратора и выполните в ней вот такую команду:

fsutil file createnew D:test10mb.txt 10485760

Создать файл строго заданного размера
В результате выполнения команды в корне диска D будет создан файл test10mb.txt размером 10485760 байт или 10 Мб. Это будет не совсем обычный текстовый файл и если вы его откроете в Notepad++ или шестнадцатеричном редакторе, то увидите, что он полностью заполнен нулевыми значениями. Кстати, вместо расширения TXT можно использовать BIN — результат будет тот же.

Оцените Статью:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)

Загрузка…

19 ответов

fsutil file createnew <filename> <length>

где <length> находится в байтах.

fsutil требует административных привилегий.

Patrick Cuff
12 июнь 2009, в 12:00

Поделиться

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

Joey
11 июнь 2009, в 19:42

Поделиться

Я искал способ генерации больших файлов с данными, а не только разреженный файл. Перешел ниже описанный ниже метод:

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

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

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

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

Giri
18 май 2011, в 10:26

Поделиться

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

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

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

ZXX
21 дек. 2010, в 20:54

Поделиться

Отметьте Инструменты набора ресурсов Windows Server 2003. Существует утилита под названием Creatfil.

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

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

Byron Whitlock
11 июнь 2009, в 18:29

Поделиться

Мне понадобился обычный 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 ГБ.

f.ardelian
25 май 2012, в 12:57

Поделиться

/*
creates an empty file, which can take 
all of the disk space. Just specify the desired file
size in 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;
}

lkurts
12 июнь 2009, в 00:52

Поделиться

One-Liner PowerShell для создания файла в C:Temp для заполнения диска C: оставляя только 10 МБ:

[io.file]::Create("C:tempbigblob.txt").SetLength((gwmi Win32_LogicalDisk -Filter "DeviceID='C:'").FreeSpace - 10MB).Close

Rod
28 апр. 2016, в 06:32

Поделиться

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

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

Вы можете легко создать файл размером на концертах.

Изображение 7316

Изображение 7317

shenku
10 апр. 2016, в 06:06

Поделиться

Найдена отличная утилита, которая настраивается на https://github.com/SL5R0/GenFile.

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

MusikPolice
25 июнь 2012, в 20:20

Поделиться

Plain ol ‘C… это построено под Mingw GCC на WinXX и должно работать
на любой «общей» платформе C.

Создает нулевой файл указанного размера. Результирующий файл НЕ является только каталогом
занимает место и занимает фактически определенное количество байтов. Эта
выполняется быстро, потому что фактические записи не происходят, за исключением байта, написанного до закрытия.
Мой экземпляр создает файл с нулями — это может варьироваться в зависимости от платформы; это
prgm по существу устанавливает структуру каталогов для любых данных, которые висят
вокруг.

#include <stdio.h>
#include <stdlib.h>

FILE *file;

int main(int argc, char **argv)
{
    unsigned long  size;

    if(argc!=3)
    {
        printf("Error ... syntax: Fillerfile  size  Fname nn");
        exit(1);
    }

    size = atoi(&*argv[1]);

    printf("Creating %d byte file '%s'...n", size, &*argv[2]);

    if(!(file = fopen(&*argv[2], "w+")))
    {
        printf("Error opening file %s!nn" , &*argv[2]);
        exit(1);
    }

    fseek(file, size-1, SEEK_SET);
    fprintf(file, "%c", 0x00);
    fclose(file);
}

Bill W
10 авг. 2012, в 22:29

Поделиться

За исключением написания полного приложения, мы Python ребята могут создавать файлы любого размера с 4 строками, один и тот же фрагмент в Windows и Linux (строка os.stat() — это просто проверка).

>>> f = open('myfile.txt','w')
>>> f.seek(1024-1) # an example, pick any size
>>> f.write('x00')
>>> f.close()
>>> os.stat('myfile.txt').st_size
1024L
>>> 

gimel
11 июнь 2009, в 19:34

Поделиться

Файлы Temp должны храниться в папке Windows Temp. На основе ответа от Rod вы можете использовать следующий один лайнер для создания временного файла 5 ГБ, который возвращает имя файла

[System.IO.Path]::GetTempFileName() | % { [System.IO.File]::Create($_).SetLength(5gb).Close;$_ } | ? { $_ }

Пояснение:

  • [System.IO.Path]::GetTempFileName() генерирует случайное имя файла со случайным расширением в папке Windows Temp
  • The Pipeline используется для передачи имени [System.IO.File]::Create($_), которое создает файл
  • Имя файла устанавливается на вновь созданный файл с помощью .SetLength(5gb). Я был немного удивлен, обнаружив, что PowerShell поддерживает Byte Conversion, что очень полезно.
  • Файл-дескриптор должен быть закрыт с помощью .close, чтобы другие приложения могли получить к нему доступ.
  • С ;$_ возвращается имя файла и с | ? { $_ } гарантируется, что возвращается только имя файла, а не пустая строка, возвращаемая [System.IO.File]::Create($_)

Florian Feldhaus
02 фев. 2017, в 11:54

Поделиться

Я искал способ создания большого фиктивного файла с распределением пространства в последнее время. Все решения выглядят неудобно. Наконец, я только что начал использовать утилиту DISKPART в Windows (встроенную с Windows Vista):

DISKPART
CREATE VDISK FILE="C:test.vhd" MAXIMUM=20000 TYPE=FIXED

Где MAXIMUM — это результирующий размер файла, 20GB здесь.

chersun
07 июль 2016, в 12:58

Поделиться

Вы можете попробовать этот код на С++:

    #include<stdlib.h>
    #include<iostream>
    #include<conio.h>
    #include<fstream>
    #using namespace std;

    int main()
    {
        int a;
        ofstream fcout ("big_file.txt");
        for(;;a += 1999999999){
            do{
                fcout<<a;
            }
            while(!a);
        }
    }

возможно, потребуется некоторое время для генерации в зависимости от скорости вашего процессора…

NEt_Bomber
05 апр. 2013, в 20:08

Поделиться

Быстро выполнять или быстро набирать клавиатуру? Если вы используете Python в Windows, вы можете попробовать следующее:

cmd /k py -3 -c "with open(r'C:UsersLRiffelBigFile.bin', 'wb') as file: file.truncate(5 * 1 << 30)"

Noctis Skytower
21 нояб. 2017, в 16:00

Поделиться

Простой ответ в python. Если вам нужно создать большой текстовый файл, я просто использовал простой цикл while и смог создать файл размером 5 ГБ за 20 секунд. Я знаю его грубую, но это достаточно быстро.

 outfile=open("outfile.log","a+")
 def write(outfile):
     outfile.write("hello world hello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello world"+"n")
     return
 i=0
 while i < 1000000:
    write(outfile)
     i+=1
 outfile.close()

jkdba
24 апр. 2014, в 21:57

Поделиться

Ещё вопросы

  • 0Пользовательский ввод диалога
  • 1Утечка намерений и AlarmManager
  • 0Функция даты PHP не печатает правильный формат
  • 0MySQL неправильно упорядочивает результаты, используя set FIELD и case
  • 1Жизненный цикл сервиса и лучший способ отменить регистрацию слушателей
  • 1Aurelia диалог повторной проверки
  • 1Сохранить пользователя после перенаправления с помощью firebase
  • 0PHP Регулярное выражение для максимум двух специальных символов в строке
  • 0Агрегирование положительных значений в нескольких столбцах с помощью SQL
  • 0Symfony 2 CronJob
  • 1Проверка, было ли прочитано новое SMS
  • 0Проверка формы на основе значения раскрывающегося списка
  • 0Интерпретатор создает копию объекта в трассировке
  • 0Различается одним полем (SQL-запрос)
  • 0Ограниченный запуск onFulfilled callback для обещания, даже если обещание отклонено
  • 0используя display: table-cell с позицией: исправлено
  • 1Лучший шаблон для контроля возврата метода
  • 1Переменная окружения в Javascript (Gulp)
  • 0Как я могу сделать раскрывающееся меню при нажатии
  • 1Как передать значение через Intent
  • 0Как смоделировать выпадающий список с вводом?
  • 0Fancybox href с динамической ссылкой из базы данных (asp.net)
  • 0Как перебрать множество пар значений JSON-объект
  • 0C ++ недопустимые операнды и типы
  • 0JPlayer не может играться в IE8
  • 1Моделирование регрессии Python с помощью Pandas Data Reader
  • 1python matplotlib.patches: нарисуйте патч круга, но оставьте только часть круга
  • 1почему происходит сбой в GWT dev mode «restart server»?
  • 0Отношение QVariant и QObject — Иерархия классов?
  • 1Версия сборки .NET — какая разница (на основе опыта System.Web.Mvc)
  • 0jQuery — после добавления значения в поле ввода, не учитывается функцией фильтра
  • 1Использование EF Code First для ключевых таблиц / баз данных по идентификатору пользователя
  • 0Как изменить положение контроллера на Google Maps
  • 0Проблемы в рельсах при использовании составных ключей
  • 1httpWebRequest Скачать и проанализировать файл Excel?
  • 1Почему мой фрейм данных pandas использует так много памяти?
  • 1Как создать горизонтальную сетку изображений с прокруткой в wpf
  • 0Как включить поддержку MSSQL для PHP на сервере Linux?
  • 1Может ли Javascript прочитать размер шрифта текстового элемента SVG? [Дубликат]
  • 1Уменьшение времени выполнения идентичных последовательных запусков Java-программы
  • 0Проверка jQuery с отключенной кнопкой отправки
  • 1Получить один индекс из мультииндексированного фрейма данных
  • 1Android: спиннеры для экранов разных размеров
  • 0Начальная страница пуста до обновления страницы
  • 0Диаграмма Ганта не загружается в пользовательском интерфейсе в angularjs
  • 0Используйте push_back () для добавления элемента в вектор, размер вектора увеличивается, но не может прочитать значения из вектора
  • 0Проблемы с возвышенным текстом и угловым JS
  • 0Использование angular-tour с несколькими видами дает неожиданные результаты
  • 0scrollTop ()! == не работает
  • 0Отображение всплывающей подсказки со свойствами объекта PHP с помощью плагина jQuery Tooltip (или любого другого метода)

Понравилась статья? Поделить с друзьями:
  • Как создать ярлык ютуба на рабочем столе для windows 10
  • Как создать файл без имени в windows 10
  • Как создать ярлык этот компьютер на рабочем столе windows 10
  • Как создать файл word в windows 10
  • Как создать ярлык через командную строку windows