Szybkie tworzenie dużych plików w systemie Windows
W tym samym duchu co Szybko utwórz duży plik w systemie Linux , Chciałbym szybko utworzyć duży plik w systemie Windows. Ogólnie myślę o 5 GB. Treść nie ma znaczenia. Wbudowane polecenie lub krótki plik wsadowy byłoby lepsze, ale zaakceptuję aplikację, jeśli nie ma innych łatwych sposobów.
20 answers
fsutil file createnew <filename> <length>
Gdzie {[1] } jest w bajtach.
fsutil
wymaga jednak uprawnień administracyjnych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-20 06:32:32
Możesz użyć narzędzia Sysinternals Contig . Posiada przełącznik -n
, który tworzy nowy plik o danym rozmiarze. W przeciwieństwie do fsutil
, nie wymaga uprawnień administracyjnych.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-07 10:42:04
Szukałem sposobu na generowanie dużych plików z danymi, a nie tylko oszczędnych plików. Natknąłem się na poniższą technikę :
Jeśli chcesz utworzyć plik z prawdziwymi danymi, możesz użyć poniższego skryptu wiersza poleceń.
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
(Uruchom dwa powyższe polecenia jeden po drugim lub możesz dodać je do pliku wsadowego.)
Powyższe polecenia tworzą atrapę pliku o rozmiarze 1 MB.txt w ciągu kilku sekund...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-20 08:08:49
Sprawdź RDFC http://www.bertel.de/software/rdfc/index-en.html
RDFC prawdopodobnie nie jest najszybszy, ale przydziela bloki danych. Absolutnie najszybszy musiałby użyć niższego poziomu API, aby uzyskać łańcuchy klastrów i umieścić je w MFT bez zapisywania danych.
Uważaj, że nie ma tu srebrnej kuli - jeśli "creation" powróci natychmiast, oznacza to, że masz rzadki plik, który po prostu fałszuje duży plik, ale nie dostaniesz bloków/łańcuchów danych, dopóki nie napisz do niego. Jeśli tylko przeczytasz to dostaniesz bardzo szybkie zera, które mogą sprawić, że uwierzysz, że twój dysk nagle stał się niesamowicie szybki: -)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-08 21:06:41
Sprawdź Windows Server 2003 Resource Kit Tools . Istnieje narzędzie o nazwie Creatfil.
CREATFIL.EXE
-? : This message
-FileName -- name of the new file
-FileSize -- size of file in KBytes, default is 1024 KBytes
Jest podobny do mkfile na Solarisie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-02 18:02:06
Potrzebowałem zwykłego pliku 10 GB do testowania, więc nie mogłem użyć fsutil
, ponieważ tworzy rzadkie pliki (dzięki @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
Chciałem utworzyć plik 10 GB, ale z jakiegoś powodu pojawił się tylko jako 4 GB, więc chciałem być bezpieczny i zatrzymał się na 4 GB. Jeśli naprawdę chcesz mieć pewność, że Twój plik będzie prawidłowo obsługiwany przez system operacyjny i inne aplikacje, przestań go rozszerzać na 1 GB.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-02 22:34:34
Użycie:
/*
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;
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-08 21:00:05
Znalazłem doskonałe narzędzie, które można konfigurować w https://github.com/SL5R0/GenFile .
Wypełnia plik docelowy losowymi danymi, więc nie ma problemów z rzadkimi plikami, a dla moich celów (testowanie algorytmów kompresji) daje ładny poziom białego szumu.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-08 21:11:45
Otwórz Menedżera zadań systemu Windows, Znajdź największy proces, który uruchomiłeś, kliknij prawym przyciskiem myszy i kliknij Create dump file
.
Spowoduje to utworzenie pliku w stosunku do rozmiaru procesu w pamięci w folderze tymczasowym.
Możesz łatwo utworzyć plik o rozmiarze w gigabajtach.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-08 21:14:05
PowerShell one-liner do utworzenia pliku w C:\Temp
do wypełnienia dysku C: pozostawiając tylko 10 MB:
[io.file]::Create("C:\temp\bigblob.txt").SetLength((gwmi Win32_LogicalDisk -Filter "DeviceID='C:'").FreeSpace - 10MB).Close
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-08 21:14:38
Krótko pisząc pełną aplikację, ludzie z amerykańskiego Pythona mogą uzyskać pliki dowolnego rozmiaru z czterema liniami, sam urywek na Windows i Linuksie (linia os.stat()
jest tylko sprawdzeniem):
>>> 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
>>>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-08 20:58:41
Zwykły ol' C... to buduje się pod MinGW GCC na Windows XX i powinno działać na dowolnej "generycznej" platformie C.
Generuje plik null o określonym rozmiarze. Wynikowy plik nie jest tylko wpisem zajmującym przestrzeń katalogu i w rzeczywistości zajmuje określoną liczbę bajtów. Jest to szybkie, ponieważ nie występują żadne rzeczywiste zapisy poza bajtem zapisanym przed zamknięciem.
Moja instancja tworzy plik pełen zer - może się to różnić w zależności od platformy; to program zasadniczo ustawia struktura katalogów dla dowolnych danych w pobliżu.
#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 \n\n");
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!\n\n", &*argv[2]);
exit(1);
}
fseek(file, size-1, SEEK_SET);
fprintf(file, "%c", 0x00);
fclose(file);
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-08 21:11:28
Znalazłem rozwiązanie używając debugowania w http://www.scribd.com/doc/445750/Create-a-Huge-File , ale nie znam łatwego sposobu na skryptowanie i nie wydaje się, aby można było tworzyć pliki większe niż 1 GB.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-11 18:42:12
... Plik 1 MB.txt w ciągu kilku sekund.
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
Zobacz tutaj: http://www.windows-commandline.com/how-to-create-large-dummy-file/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-24 22:02:41
Pliki tymczasowe powinny być przechowywane w folderze Windows Temp. Na podstawie odpowiedzi z Rod {[10] } możesz użyć poniższego linera, aby utworzyć plik temp o pojemności 5 GB, który zwraca nazwę pliku
[System.IO.Path]::GetTempFileName() | % { [System.IO.File]::Create($_).SetLength(5gb).Close;$_ } | ? { $_ }
Wyjaśnienie:
-
[System.IO.Path]::GetTempFileName()
generuje losową nazwę pliku z losowym rozszerzeniem w folderze Windows Temp - Nazwa Potoku jest przekazywana do
[System.IO.File]::Create($_)
, który tworzy plik - nazwa pliku jest ustawiana na nowo utworzony plik za pomocą
.SetLength(5gb)
. Byłem trochę z zaskoczeniem odkryłem, że PowerShell obsługuje konwersję bajtów , co jest naprawdę pomocne. - uchwyt pliku musi być zamknięty za pomocą
.close
, aby umożliwić innym aplikacjom dostęp do niego - z
;$_
zwracana jest nazwa pliku, a z| ? { $_ }
jest zapewnione, że zwracana jest tylko nazwa pliku, a nie pusty łańcuch zwracany przez[System.IO.File]::Create($_)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:54:46
Ostatnio szukałem sposobu na stworzenie dużego atrapy pliku z alokacją przestrzeni. Wszystkie rozwiązania wyglądają niezręcznie. W końcu uruchomiłem narzędzie DISKPART
w systemie Windows (osadzone od Windows Vista):
DISKPART
CREATE VDISK FILE="C:\test.vhd" MAXIMUM=20000 TYPE=FIXED
Gdzie MAXIMUM to wynikowy rozmiar pliku, tutaj 20 GB.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-08 21:15:09
Prosta odpowiedź w Pythonie: jeśli potrzebujesz utworzyć duży plik tekstowy, użyłem prostej pętli while
i byłem w stanie utworzyć plik 5 GB w około 20 sekund. Wiem, że to prymitywne, ale wystarczająco szybkie.
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()
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-08 21:08:52
Możesz wypróbować ten kod C++:
#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);
}
}
Może to zajmie trochę czasu, aby wygenerować w zależności od szybkości procesora...
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-08 21:09:47
Szybki do wykonania czy szybki do wpisania na klawiaturze? Jeśli używasz Pythona w systemie Windows, możesz spróbować tego:
cmd /k py -3 -c "with open(r'C:\Users\LRiffel\BigFile.bin', 'wb') as file: file.truncate(5 * 1 << 30)"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-21 15:05:14
Dodałem kilka dodatków do tej samej metody fsutil
, o której mowa w wybranej odpowiedzi.
Ma to na celu tworzenie plików o wielu różnych rozszerzeniach i / lub różnej wielkości.
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
Kod można sklonować z https://github.com/iamakidilam/bulkFileCreater.git
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-09 14:07:55